【发布时间】:2021-08-30 08:22:55
【问题描述】:
我正在尝试在 Laravel 中编写自定义验证规则,以确保逗号分隔列表中的每封电子邮件都不在禁止列表中。我已经有一个不同的规则来验证逗号分隔列表中的每封电子邮件是否都是有效的电子邮件,所以我不在这里检查。
上面的代码运行良好,但我有两个问题:
- 我可以做得更好吗?
- 如何修改错误消息以包含不正确的电子邮件地址?我想让它说类似
"The email address test@example.com is on the suppression list and will not be used for sending"。
public function passes($attribute, $value)
{
$emails = explode(',', $value);
foreach ($emails as $email) {
$onSuppressionList = $this->suppressionListManager->find($email);
if ($onSuppressionList) {
return false;
}
}
return true;
}
public function message()
{
return 'The validation error message.';
}
【问题讨论】:
-
公共函数传递($attribute, $value) { $emails = explode(',', $value); $onSuppressionList = $this->suppressionListManager->whereIn('email',$emails)->exists(); if ($onSuppressionList) { return false; } } 返回真; }
-
这个怎么样?我猜你可以检查其中的电子邮件
-
SuppressionListManager是一个实用程序类。这不是 Eloquent 模型。那部分很好,无需更改。 -
我发布了答案。如果有任何问题请告诉我
标签: laravel validation rules