#laravel #laravel-5 #eloquent
#laravel #laravel-5 #eloquent
Вопрос:
Я создаю веб-сайт электронной коммерции, и у меня следующие отношения:
Бабушки и дедушки: категория (идентификатор, имя)
Родители: Бренд (идентификатор, имя, category_id)
Дочерние элементы: Product (id, name, brand_id)
Пример : Смартфон (категория) -> iPhone (бренд) -> iPhone 12, iPhone 12 Pro, iPhone 12 Pro Max (продукт)
Я хочу получить все iPhone 12, как указано выше, из категории «Лайки»
$iPhone = AppCategory::find(1)->brands->where('name','iPhone')->toArray()
Спасибо за помощь
Комментарии:
1. используйте отношение hasManyThrough
Ответ №1:
ЧТОБЫ получить все товары от бренда «iPhone» для категории «Смартфон»
$iphones = Category::whereName('Smartphone')
->with(['brands' => function($query){
$query->with('products')->whereName('iPhone');
})
->get();
Ответ №2:
Попробуйте выполнить этот запрос
$iPhones = AppCategory::whereHas('brands', function ($query)
{
$query->where('name','iPhone');
})->get();