Size: a a a

Laravel для начинающих

2020 September 08

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
т.е. в таблице cars  могут быть авто с одинаковым названием но разной категорией, верно?
Ну если того требует бизнес - то да
источник

SK

Stas K in Laravel для начинающих
Подскажите есть проверка поля на уникальность в БД оно не обязательное и если приходит такое поле с фронта но пустое то соответвенно видит что есть другие поля с значением null и бьет ошибку на уникальность. Как можно в таком случае сделать что бы не учитывало пустые значение или еще что то
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Ну если того требует бизнес - то да
благодарю, 👍
источник

V

Vladyslav in Laravel для начинающих
paul sos
Всем привет.
Кто шарит в SleepingOwl Admin - есть заказ - правки в админке.
Сам начинающий, некогда разбираться.
Если здесь нельзя размещать заказы - киньте ссылку где можно, буду благодарен.
Все вопросы в личку.
источник

SG

Sergey Gerasimov in Laravel для начинающих
Stas K
Подскажите есть проверка поля на уникальность в БД оно не обязательное и если приходит такое поле с фронта но пустое то соответвенно видит что есть другие поля с значением null и бьет ошибку на уникальность. Как можно в таком случае сделать что бы не учитывало пустые значение или еще что то
правило nullable добавь
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Ну если того требует бизнес - то да
кстати а при сохранении авто, какое правило должно быть, чтобы случайно не записать дубль авто в одной и той же категории?
допустим ещё есть поле alias в таблице cars
rules (){
   return ['alias' =>  'cars:unique']
}
это ведь не сработает.
получается нужно делать проверку как-то так?
if(Car::whereHas('category', function($query) {$query->where('alias', $alias)->count())
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
кстати а при сохранении авто, какое правило должно быть, чтобы случайно не записать дубль авто в одной и той же категории?
допустим ещё есть поле alias в таблице cars
rules (){
   return ['alias' =>  'cars:unique']
}
это ведь не сработает.
получается нужно делать проверку как-то так?
if(Car::whereHas('category', function($query) {$query->where('alias', $alias)->count())
Есть Rule::unique() и у него есть метод using(), в котором можно условия добавить из контекста
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Есть Rule::unique() и у него есть метод using(), в котором можно условия добавить из контекста
что-то не нашёл пример использования в гугл, где можно посмотреть подскажите пожалуйста?
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
в доке
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
источник

SK

Stas K in Laravel для начинающих
Sergey Gerasimov
правило nullable добавь
некатит поле то всеравно приходит но значение у него null и есть другие записи с таким же полем null в БД то всеравно уникалность отрабатывает
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
что-то не нашёл пример использования в гугл, где можно посмотреть подскажите пожалуйста?
https://github.com/laravel/framework/blob/5.8/src/Illuminate/Validation/Rules/DatabaseRule.php#L144

Rule::unique('table', 'column')->using(fn($query) => $query->whereHas...)
источник

SK

Stas K in Laravel для начинающих
может подойдет sometimes
источник

SG

Sergey Gerasimov in Laravel для начинающих
Stas K
некатит поле то всеравно приходит но значение у него null и есть другие записи с таким же полем null в БД то всеравно уникалность отрабатывает
Ты про уровень БД чтоли?
источник

SK

Stas K in Laravel для начинающих
да
источник

Е

Евгений in Laravel для начинающих
источник

SG

Sergey Gerasimov in Laravel для начинающих
Stas K
некатит поле то всеравно приходит но значение у него null и есть другие записи с таким же полем null в БД то всеравно уникалность отрабатывает
Если приходит null, то nullable его не пустит в правило unique
источник

SK

Stas K in Laravel для начинающих
поле с фронта приходит в любом случае но оно или заполнено или пустое и если пустое то срабатывает сравнение уникальности с дургими записями в БД у которых это поле тоже занулено
источник

SG

Sergey Gerasimov in Laravel для начинающих
Stas K
да
А если падает при insert, то нужно уникальный индекс сделать условный
источник

SG

Sergey Gerasimov in Laravel для начинающих
Stas K
поле с фронта приходит в любом случае но оно или заполнено или пустое и если пустое то срабатывает сравнение уникальности с дургими записями в БД у которых это поле тоже занулено
nullable - не даст проверить
источник