如何验证电子邮件地址并使其唯一?我的问题是,当我保存但未输入电子邮件时,它仍将存储在我的电子邮件中
我的 验证请求
$this->validate($request, [
'email_ad' => 'required|email|unique:clients'
]);
答案 0 :(得分:3)
您需要像这样在客户表中包括该列:
$this->validate($request, [
'email_ad' => 'required|email|unique:clients,email'
]);
这告诉验证要检查哪一列
希望这会有所帮助
答案 1 :(得分:0)
这有助于您验证所有字段,包括带有自定义消息的电子邮件
$messages = [
'same' => 'The passwords did not match'//customized message
];
$input = $request->validate([
'name' => 'required', //name validation
'email' => 'required|email|unique:users,email', //email validation
'phone' => 'required|unique:users|min:10|max:12|numeric', //Phone validation
'password' => 'required', //password validation
'c_password' => 'required|same:password', //confirm Password validation
'gender' => 'required', //field validation
'referral_code' => 'nullable',
], $messages);
希望你能理解!
答案 2 :(得分:0)
有时,您可能希望在唯一检查期间忽略给定的ID
。例如,考虑一个update profile
屏幕,其中包括用户名,e-mail address
和位置。当然,您将需要验证电子邮件地址为unique
。但是,如果用户仅更改名称字段而不是电子邮件字段,则您不希望引发validation error
,因为用户已经是电子邮件地址的所有者。
尝试使用这种方法
use Illuminate\Validation\Rule;
$this->validate($request, [
'email_ad' => [
'required',
Rule::unique('clients')->ignore($client->id),
],
]);
答案 3 :(得分:0)
你好,这对我来说很有用
'email' => ['required', 'email', 'max:255', Rule::unique('users')],