@kirill-93

Связь через таблицу Laravel?

Подскажите, есть 3 модели:
Purchase, Product, Category
Purchase и Category связаны через Product(у Product есть свойства purchase_id и category_id).
Как мне получить все Purchase определенной категории? Точнее как описать связь? hasManyThrough не подходит, т.к. там модели должны быть связаны по цепочке.
Спасибо.
  • Вопрос задан
  • 389 просмотров
Решения вопроса 1
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
К примеру, у нас есть такая структура

Таблица product:
id, name, purchase_id, category_id

Таблица category:
id, name

Таблица purchase:
id, total


В модели Product:
public function purchase(){
    $this->hasMany('Purchase');
}


В таком случае достать все purchase категории можно с помощью whereHas.
Примерный код (не проверен):
$purchases = Product::with('purchase')->whereHas('category', function($query){
   $query->where('id', 1);
})->get()->lists('purchase');


Но структура изначально неправильная. Вам надо ее переосмыслить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы