我在项目,更新用户的信息的时候,如果用户想要更新用户名,再提交进入数据库之前,我们需要判断这个新的用户名其他人是否在用。
public function updateCustomer(Request $request) {
// dd($request->all());
$rules = [
'user_name' => 'min:4|max:255|unique:customer,user_name,' . request('id'),
'email' => 'email|required_without:user_name',
'password' => 'min:6',
'customer_type' => 'required|integer',
];
$messages = [
'user_name.unique' => '用户名已存在!',
'user_name.max' => '用户名长度应小于255个字符!',
'email.required_without' => '邮箱或者用户名必须至少填写一个!',
'customer_type.required' => '用户类型必填!',
];
$this->validate($request, $rules, $messages);
$input = $request->all();
// dd($input);
$Customer = Customer::find($input['id']);
$input['password'] = empty($input['password']) ? ($Customer->password) : bcrypt($input['password']);
$bool = $Customer->update($input);
if (empty($bool)) {
return '更新失败!';
}
return redirect('/admin/customer/index/' . $input['customer_type']);
}
更详细的Validate解说,参考如下链接: