нашел.
Есть сущность Entity. Она живет своей жизнью.
Есть сущность Value, которой также нужен Attribute.
при создании Value и Attribute в одном методе, нам прилетают данные. Я хочу реализовать правило уникальности для поле slug.
Должно это работать так. Поле slug должен быть уникальным только для Attribute которые относятся к Entity через отношения Value.
Entity уже был создан.
я так понимаю, методы unique не подходят для этой задачи?
Возможно туплю 🙁
Создай своё правило ._.
Может тебе ещё таблицу создать связи value и attribute и там проверять уникальность, если я конечно правильно понял
Тогда делай проверку после валилации, подцепившись: https://laravel.com/docs/8.x/validation#after-validation-hook На момент вызова у тебя все проверено, с точки зрения id, а в функции что будет вызвана сделаешь нужные тебе манипуляции, и если что то не так выдашь сообщение об ошибке.
Нет, ты неправильно понял
Спасибо! То, что надо!
Спасибо ещё раз! After не замечал. Код станет чище :)
Только один вопрос, если ты проверяешь slug, зачем из переданого в запрросе slug генерировать slug через Str::slug(), я так понял у тебя в запросе уже готовый slug.
А почему бы не создать request класс для этого? И не оставлять лишний код в контроллере
То ли дело запросы в реквесте. Самое место.
Если запрос и так будет, то есть разница где? И дело тут не в запросе, а в валидации request данных
Логика. Если валидация, то важно где, а если запрос — пофиг. Премию тебе.
Задача какая? Реализовать валидацию, а не sql запросы
Ты посмотри на его валидацию. Там запрос в бд.
И?
А почему ты решил, что это происходит не классе FormRequest?
1) распределение обязанностей 2) если для этого предоставлен функционал, наверное он не просто так?
Ответ не на мой вопрос? Я попросил уточнить, как автор ответа определил, что приведенный кусок кода находится в контролере, а не в классе отвечающим за валидацию, т.е. FormRequest
)))
я вроде скинул код из From Request?
А где лучше всего валидировать значение тогда, которое в любом случаи нужно будет смотреть в БД, например тот же имейл при создании кастомера?
Есть валидация в модели как в рельсе, но в ларке она не реализуется вроде
Есть пакеты которые реализуют такую возможность.
этот код с форума. И ответ на его сообщение
Это уже можно сделать потом. Цель была реализация unique слаг перед созданием записи.
Да, я просто предложил
Спасибо :)
Привет, Егор! В качестве дополнительной проверки. Если честно, до конца ещё не обдумал этот момент.
Обсуждают сегодня