2014-09-26 4 views
0

Я бы хотел, чтобы поле ввода электронной почты было только @ whatever.com. Так что, если человек подписывается, я хочу, чтобы они могли только зарегистрироваться с адресом, который я выбираю. Скажите только электронные письма @ gmail.com, ничего больше. Не знаю, как это сделать в laravel 4. Я все еще изучаю ларавел. ThanksLaravel 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

+0

Отредактировано, чтобы показать, как создать валидатор. –