->with(['comments:id,title'])
мне нужно впихнуть внутрь IFNULL
условно чтобы было так
->with(['comments:id,IFNULL(title,subscription)'])
но ясное дело оно не дает так сделать, так как ищет столбец IFNULL(title,subscription) )
как впихнуть IFNULL ?))
->with(['comments:id,title' => fn($query) => $query->whereNull('title')]);
это что за недоразумение, прости господи
punishments, мм
внутри замыкания делаем selectRaw..🧐
подписчик и его наказания в чате 😁
откуда там id === null возьмется?
внешний ключ нужно добавить
вот это не пробовал так как там идет ::select и with к нему добавлен там так по синтаксиску не впихнется
через :: короче и лучше
для чего тебе вообще нужен IFNULL?
Мне нужно выдать значение столбца. Если оно null, то выдать другой столбец (который не nullable)
для этого есть https://laravel.com/docs/10.x/eloquent-mutators#defining-an-accessor у моделей
можешь это на уровне acessor-а сделать
Такая логика нужна конкретно в этом контроллере Модель юзается и в других контроллерах, но там такая логика не нужна Или проще определить accessor под эту логику отдельно ?
Пример: в таблице есть поля name_ru и name_en и чтобы постоянно не писать $model->name_ru ?: $model->name_en; создал accessor name() и в нем return $this->name_ru ?: $this->name_en;
Та не, там вопрос в бд что хранится, а не что в запросе идет
ну ты говоришь про один контроллер, что только там это надо, значи ту тебя какая-то логика должна вернуть поле которое будет по дефолту значением другого поля. или ты где-то в контроллере до ответа еще это обрабатываешь?
Нет, все так как описано в твоем сообщении. Без обработки в коде
Оставь всё как было
Обсуждают сегодня