我正在学习Laravel 5,并尝试验证数据库中是否存在电子邮件,但如果失败则添加一些自定义消息。我在Laravel的文档中找到了After Validation Hook
$validator = Validator::make(...); $validator->after(function($validator) use ($email) { if (emailExist($email)) { $validator->errors()->add('email', 'This email has been used!'); } }); if ($validator->fails()) { return redirect('somewhere') ->withErrors($validator); }
但是我不太明白这是什么。因为我可以简单地做到这一点:
//as above if (emailExist($email)) { $validator->errors()->add('email', 'This email has been used!'); } //redirect as above
它仍然输出相同的结果。什么时候应该使用第一个而不是第二个来验证某些内容?
我正在学习Laravel 5,并尝试验证数据库中是否存在电子邮件,但如果失败则添加一些自定义消息。我在Laravel的文档$ validator = ...
第一种方法的目的只是将包含在Validator
对象内部的所有内容保留为使其更可重用。
[在许多情况下,您可能会觉得有必要。