我使用默认的Laravel 5认证系统。我想简单地添加一个检查,验证用户是否使用学校的电子邮件帐户(我正在为我的大学写这篇文章)。例如,我想确保他们使用的是@harvard.edu,而不是@gmail.com。如果他们没有使用正确的电子邮件类型,我想在$errors
变量中添加一个错误,并将其与其他可能的错误一起打印在注册表单上。
看起来实际的验证发生在registry .php中。我假设我将不得不添加一些东西到验证器函数的电子邮件部分。
public function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
我感到困惑的另一部分是实际错误消息的位置。
我是Laravel的新手,提前感谢。
要添加自定义验证,可以在http://laravel.com/docs/5.0/validation#custom-validation-rules上阅读文档。例如,在您的例子中:
Validator::extend('email_harvard', function($attribute, $value, $parameters)
{
$segments = explode("@", $value, 2);
return end($segments) == "harvard.com";
});
之后,修改您的validator
规则,更改行:
'email' => 'required|email|max:255|unique:users',
:
'email' => 'required|email|email_harvard|max:255|unique:users',
关于错误消息,您可以在这里阅读。在Laravel 5中,验证消息位于resources/lang/xx/validation.php
,其中xx
是语言代码。