2014-09-26 75 views
0

我希望电子邮件的输入字段仅为@ whatever.com。 所以如果一个人报名,我希望他们只能用我选择的地址注册。 只说@ gmail.com的电子邮件,没有别的。 不确定如何在laravel 4中做到这一点。 我仍然在学习laravel。 谢谢Laravel 4 - 仅限于@ whatever.com

回答

1

你不是说你到底需要什么,所以我会假设它是在表单输入中。

list($name, $domain) = split("@", Input::get('email'), 2); 

if ($domain !== 'gmail.com') 
{ 
    return Redirect::back()->with('error', 'Invalid domain.'); 
} 

您还可以创建一个验证器来帮助您:http://laravel.com/docs/4.2/validation#custom-validation-rules

您可以创建自定义验证,以满足您的需求:

Validator::extend('gmail', function($attribute, $value, $parameters) 
{ 
    list($name, $domain) = split("@", $value, 2); 

    return $domain !== 'gmail.com'; 
}); 

然后

$validator = Validator::make(Input::all(), 
    array(
     'email'       => 'required|max:50|email|gmail|unique:users', 
     'username'      => 'required|max:20|min:8|unique:users', 
     'password'      => 'required|min:6', 
     'password_again'  => 'required|same:password' 
    ) 
); 
+0

我使用验证,这里是我的代码http://pastebin.com/MtQ0uEhg – Allen 2014-09-30 15:29:18

+0

编辑以展示如何创建验证器。 – 2014-09-30 16:13:13