Как правильно произвести валидацию данных после обработки их в observer?

Существует блог, при добавлении категории блога админ вводит title и slug (он не обязателен для ввода).
Структура миграции следующая:
...
$table->string('title');
$table->string('slug')->unique();
...

После отправки формы данные проходят валидацию в request, но т.к. у нас slug необязательный для ввода, то если приходит пустое значение, то перед записью данных он автоматически формируется в observer из title. Проблема состоит в том, что title - это значение не уникальное для БД, а slug - уникальное (видно в миграции), и при вводе и сохранении заголовка который уже существует в БД выходит ошибка не уникальности slug.
Вопрос: как грамотно реализовать валидацию данных обрабатываемых обсервером.
  • Вопрос задан
  • 617 просмотров
Решения вопроса 1
@3gsxarakiri
Пытаюсь разобраться в этом гемморое
Я бы на месте автора попробовал следующее:
1. Сделал бы оба поля в реквесте обязательными
2. На роут сохранения добавил бы миддлварь на проверку слага. Если слаг уже есть, то пускаем к валидатору, если нет, то пытаемся сгенерировать.
3. В валидаторе пишем примерно такое правило - required|unique:category. Кроме того, что оно проверит на наличие, так ещё и в базу посмотрит, есть ли такой слаг.
4. Если ревест не пройдёт валидацию, то просто вернёт человека (ну или можешь расширить валидатор и сказать ему, что такое уже есть(или похожее)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы