У меня есть модель со свойством mobileNumber
. номер мобильного телефона уникален, и правила проверки:
public static $rulesForEdit = array(
'firstName' => 'required|min:5',
'lastName' => 'required|min:5',
'mobileNumber' => 'required|min:5|unique:admin,mobileNumber|numeric'
);
когда я обновляю модель, я делаю это:
$data = array('firstName' => Input::get('firstName'),
'lastName' => Input::get('lastName'),
'mobileNumber' => Input::get('mobileNumber')
);
$validation = Validator::make($data, Admin::$rulesForEdit);
if($validation->passes()){
$admin = Admin::find($id);
$admin->firstName = Input::get('firstName');
$admin->lastName = Input::get('lastName');
$admin->mobileNumber = Input::get('mobileNumber');
$admin->update();
return Redirect::to("restaurants/admins/".$admin->id);
}else{
return Redirect::back()->withInput()->withErrors($validation);
}
Проблема заключается в том, что я продолжаю получать сообщение об ошибке проверки, в котором говорится, что: The mobile number has already been taken
, что правильно, но мобильный телефон принадлежит той же модели, которую я обновляю, нет другой модели, которая использовала бы этот номер мобильного телефона. , как раз тот, который я хочу обновить. Другими словами, я обновляю имя и фамилию, но не номер мобильного телефона.
admin
mobileNumber
должно быть уникальным, т. е. дублирование не допускается, если вы не обновляете номер мобильного телефона, удалите его из проверки. - person Vijayaragavendran   schedule 30.06.2014$admin = Admin::find($id); $admin->firstName = Input::get('firstName'); $admin->lastName = Input::get('lastName'); $admin->update();
если вы не собираетесь обновлять его, то нет необходимости в обряде проверки? - person Vijayaragavendran   schedule 30.06.2014'mobileNumber' => 'required|min:5|unique:admin,mobileNumber,' . $id
Чтобы заставить валидатор игнорировать уникальное правило для данного идентификатора, вы можете передать идентификатор того записанного, который проверяется, - person Vijayaragavendran   schedule 30.06.2014'mobileNumber' => 'required|min:5|unique:admin,mobileNumber,.$id|numeric'
? - person Anastasie Laurent   schedule 30.06.2014