Мне нужно выполнить уникальную проверку элемента с именем temp_name
на основе другого значения столбца temp_mode
. то есть temp_name
должен быть уникальным, если значение temp_mode
равно email
. Я сделал, как правило, как этотединственное правило валидации laravel на основе другого значения столбца
'temp_name' => 'unique:templates,temp_name,NULL,temp_id,temp_mode,email'
где templates
это имя дб. это не сработало. он всегда показывает This template name is already present
для всех значений temp_mode
. Я знаю, что будет какой-то другой способ добиться этого. может кто-нибудь, пожалуйста, дать мне идею решить эту проблему.
Редактировать
С ниже ответа я попробовал этот код
$rules = array(
'temp_txt' => 'required',
);
$validator = Validator::make(Input::all(),$rules);
$validator->sometimes('temp_name', 'unique:templates', function($input){
return $input->temp_mode == 'email';
});
Но это показывает мне ошибку
BadMethodCallException Method [sometimes] does not exist
я должен устанавливать какие-либо дополнительные функции в мой проект для использования sometimes
??
это правильно, если я дал код внутри функции ($ ввода), а как это 'вернуть $ вход-> temp_mode = Input :: получить ('temp_mode') ; '?? – Zammuuz
Нет, это не имело бы смысла? Что случилось с моим кодом? Ах, вы имеете в виду, что значения должны быть «электронной почтой»? – lukasgeiter
См. Обновленный ответ. – lukasgeiter