Laravel 中的电子邮件验证规则?
Email validation rule in Laravel?
我使用简单规则进行电子邮件验证:
'email' => 'required|email|unique:users,email',
如何修改选项 unique
使其仅在输入的电子邮件与原始电子邮件不同时才有效?
样本:
字段 email
包含来自 table users
的默认值:example@gmail.com
然后我按下按钮而不对表格进行任何更改我不应该检查 unique:users
。
否则,即使我更改了 example@gmail.com1
中的一个符号,我也必须使用以下方法验证传入值:unique:users
.
根据请求方法(更新或创建),您将需要多个规则,如果您知道用户/电子邮件,您可以将第三个参数传递给 unique 以确保不会失败
'user.email' => 'required|email|unique:users,email,'.$user->id,
切换方法
switch($this->method())
{
...
}
我使用条件检查来做到这一点:
$validator = Validator::make($request->all(), []);
$validator->sometimes('email', 'unique:users,email', function ($input) {
return $input->email !== Auth::user()->email;
});
我认为这是 laravel 验证中的漏洞。
我更新了电子邮件验证的代码。这对我来说很好用。
'email' => [
'required', 'email:rfc',
function($attribute, $value, $fail) {
if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
$fail($attribute . ' is invalid.');
}
}],
我使用简单规则进行电子邮件验证:
'email' => 'required|email|unique:users,email',
如何修改选项 unique
使其仅在输入的电子邮件与原始电子邮件不同时才有效?
样本:
字段 email
包含来自 table users
的默认值:example@gmail.com
然后我按下按钮而不对表格进行任何更改我不应该检查 unique:users
。
否则,即使我更改了 example@gmail.com1
中的一个符号,我也必须使用以下方法验证传入值:unique:users
.
根据请求方法(更新或创建),您将需要多个规则,如果您知道用户/电子邮件,您可以将第三个参数传递给 unique 以确保不会失败
'user.email' => 'required|email|unique:users,email,'.$user->id,
切换方法
switch($this->method())
{
...
}
我使用条件检查来做到这一点:
$validator = Validator::make($request->all(), []);
$validator->sometimes('email', 'unique:users,email', function ($input) {
return $input->email !== Auth::user()->email;
});
我认为这是 laravel 验证中的漏洞。
我更新了电子邮件验证的代码。这对我来说很好用。
'email' => [
'required', 'email:rfc',
function($attribute, $value, $fail) {
if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
$fail($attribute . ' is invalid.');
}
}],