2015-07-04 2 views
0

Использование валидатора laravel Я пытаюсь сделать недействительными данные, если был указан атрибут. Таким образом, противоположность правила required.Проверка недействительных параметров

Текущие правила

$rules = [ 
     'email_address' => 'required|max:255|Email|unique:users,email' 
]; 

Не действует

{ 
    "username": "Perry55", 
    "email": "[email protected]", 
    "password": "GR1OEcNWwO" 
} 

Действительно

{ 
    "email": "[email protected]" 
} 
+0

Вам не нужно ничего недействить, если вы хотите, чтобы какой-либо атрибут не был вставлен, исключите его из заполняемого массива в ваш красноречивый файл модели. –

+0

@NehalHasnayeen на самом деле я хочу отличить bateween create and update validation, в создании свойства может быть заполняемым, но не в обновлении – PrivatMamtora

+0

Вы можете полагаться на условные выражения, такие как '$ request-> method()' или что-то вроде '$ request-> есть ('*/создать') '. – user2094178

ответ

1

Вы можете использовать различные $ заполняемых свойства для создания и способ обновления, используйте заполняемых метод красноречивым модель для установки заполняемый столбец, подобный этому в методе создания

$model->fillable(['name', 'email', 'password']); //$model is instanceof Model class 

в методе магазине

$model->fillable(['email']); 

И вы должны использовать красноречивую модель для обновления не построитель запросов, поскольку конструктор запросов будет игнорировать ваши $ заполняемых свойство & вставить все,

$model = Model::find($id); 
$model->update($request->all()); //$request is instanceof Request class 

Model::where('id', $id)->update($request->all()); 

Другой способ заключается в том, что кто-то, использующий html-форму для обновления, должен игнорировать нежелательный ввод, подобный этому

$ model-> update ($ request-> except (['input_field_name']));

Смежные вопросы