с жадной загрузкой данных скидок - из таблицы с отношениями discount.
$products = Product::with('discount')->get();
Получать все поля модели Product для списка товаров – избыточно. В списках товара – описания товара, мета-данные, дополнительные картинки и многие другие поля – не нужны. Что бы исключить лишние данные, пытаюсь построить запрос используя select():
$products = Product::with('discount')->select("name", "slug", "active", "hit", "new", "stock", "advice", "thumbnail", "base_price", "price") ->get();
Но в данном случае отношения не работают, данные из таблицы discount не приходят.
В документации решения не нашел, прошу совета: Куда смотреть? Как исключить лишние данные из запроса, с жадной загрузкой отношений?
select('...','discount.*')
Sorry... Почему-то не работает, ошибка.
discount это таблица в бд
а не relation
ключ добавь в селект
Название таблицы в базе: discounts, по запросу к базе: $stocks = Product::with('discount')->where([['stock', 1],['active', 1]])->select('name', 'slug', 'hit', 'new', 'stock', 'advice', 'thumbnail', 'base_price', 'price', 'currency', 'discounts.*' )->inRandomOrder()->take(8)->get(); Ошибка:
https://t.me/laravel_pro/528305
->select('id', ....)
можно и так https://stackoverflow.com/questions/52554932/select-fields-in-laravel-eloquent-with-relation/52555100
К сожалению не помогает. Ключ - id, в запросе поставил, но все равно ошибка:
https://stackoverflow.com/questions/52554932/select-fields-in-laravel-eloquent-with-relation/52555100
он хотел не у отношения поля обрезать, а у основной модели. при этом в селект первичный ключ он не засунул - собственно, из-за этого и не работала подгрузка отношений
Обсуждают сегодня