2015-10-12 1 views
1

Есть ли какое-либо выражение проверки, подобное уникальному: в Laravel, возвращающем значение true, если в базе данных есть атрибут:. Обратите внимание на атрибут электронной почты: -Есть ли какое-либо выражение для проверки, подобное уникальному: в laravel, которые возвращают true, если в базе данных существует значение для атрибута

$data=[] 
$rules= ['email': 'exist_in_database'] 
$validator=Validator::make($data,$rules); 
if($validator->passes()){ 
//do something 
}else{ 
//error 
} 

==> уникальный: возвращает ложь, если значение существует

, если такой проверки не существует, что, как сделать собственный валидатор путем расширения Validator для этой проблемы? Пожалуйста, помогите

+0

проверить правило 'exist' http://laravel.com/docs/4.2/validation#rule-exists –

ответ

1

Да и синтаксис для него является unique:table,column,except,idColumn

В вашем случае,

$rules= ['email' => 'unique:users,email']; 

Для получения дополнительной документации, проверьте this link.

+0

ok, но это для заданного имени столбца для проверки уникальности, но в соответствии с проблемой. Мне нужна альтернатива для этого кода в качестве проверки: - считать его $ user = Пользователь :: where ('email', '=', $ given_email) -> get(); if ($ user-> существует()) { return true; } еще { // не подтверждены } если не такая проверка существует, то, как сделать пользовательскую один для этого –

+1

$ правил = [ «адреса электронной почты» => «существует: пользователи, адрес электронной почты»]; , который работает –

0

Я использую это для проверки каких-либо уникальное поле, в этом случае Email ID, который принадлежит к таблице USERS:

if (!empty($id)) { 
    $rules['email'] = 'required|email|min:6|max:75|unique:users,email,' . $id . ',id,deleted_at,0000-00-00 00:00:00'; 
} 
else { 
    $rules['email'] = 'required|email|min:6|max:75|unique:users,email,NULL,id,deleted_at,0000-00-00 00:00:00'; 
} 
0

Отвечая на вопрос «Как создать новый валидатор». Вот как:

Validator::extend('validator_name', function ($attribute, $value, $parameters, $validator){ 

// whatever code you want here, I suggest you play with the parameters 

// below there is an example of validation using regex 
    return preg_match('/^[\pL\h]+$/u', $value); 
}); 

Чтобы сделать этот код работать, создать ValidatorServiceProvider и поместить этот код в ботинке() функцию, а затем зарегистрировать поставщика в вашем app.php так:

App\Providers\ValidatorServiceProvider::class,