chelkaz
@chelkaz

Как при обновлении таблицы сделать проверку на уникальность?

При создании таблицы проверка на уникальность нужных колонок это ясно. Но как логически сделать проверку при обновлении? Например есть поля:
-------------------
name: Название
sort: 500
section: 12
-------------------
И в таблице sections поле name должно быть уникальным.
При обновлении я например меняю только поле sort. И теперь при проверки на уникальность будет ошибка, так как поле name уже есть у самого себя...
Проверяю через валидацию:
$validator = Validator::make($request->all(), [
            'sect_name' => 'required|unique:sections,name|max:255',
        ]);

Возможно ли проверить у всех, кроме самого себя?
  • Вопрос задан
  • 317 просмотров
Решения вопроса 1
v_decadence
@v_decadence
unique имеет много параметров, в том числе id записи, которую нужно игнорировать при проверке, в документации уточните порядок параметров.

В 5.2 это третий параметр.

В последней 5.3.* доступен такой синтаксис:
Rule::unique('users')->ignore($user->id);

Документация: https://laravel.com/docs/5.3/validation#rule-unique
Раздел Forcing A Unique Rule To Ignore A Given ID
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы