Как использовать Update, когда установлено Rule :: Unique - PullRequest
0 голосов
/ 04 сентября 2018

Когда я добавляю нового клиента, мне нужно ввести имя, адрес электронной почты, а также номер_регистра, который должен быть уникальным. Теперь, если я хочу отредактировать эти данные пользователя, я получаю сообщение об ошибке, что номер регистра (если я не изменяю его, но у меня должна быть возможность изменить его), уже использовался. Как теперь отключить uniqe для регистрационного номера, когда я хочу обновить информацию клиента. Запрос

public function rules()
{
    return [
        'type' => 'required',
        'register_number' => [
            'required',
            Rule::unique('clients')->where(function ($query) {
                return $query->where('active',1);
            })->ignore('register_number', when update) 

        ];
    }
}

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

здесь вы передаете register_number столбец, чтобы игнорировать, но это неправильно, вы должны передать primaryKey , который вы собираетесь обновить

Пример: если ваш ПК находится в вашей клиентской таблице, вы должны использовать, как показано ниже

Rule::unique('clients')->where(function ($query) {
      return $query->where('active',1);
})->ignore('client_id',$client_id) 

отметьте Ссылка

0 голосов
/ 04 сентября 2018

К запросу мне нужно было добавить:

ignore($this->id)

Итак, наконец:

return [
            'type' => 'required',
            'register_number' => [
                                    'required',
                                    Rule::unique('clients')->where(function ($query) {
                                        return $query->where('active',1);
                                    })->ignore($this->id)

        ]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...