У меня есть следующие модели:Возможно ли иметь отношения HasManyThrough, которые глубже двух уровней?
Product
BaseProduct
BaseCode
Series
Каждый из них является то, что отдельного лица, но они связаны между собой.
Product
имеет внешний ключ к BaseProduct
, BaseProduct
имеет внешний ключ к BaseCode
BaseCode
и имеет внешний ключ к Series
.
Я уточнял метод в моей BaseCode
модели, так что я могу выбрать все Products
, которые связаны с этой конкретной BaseCode
:
public function Products()
{
return $this->hasManyThrough('Product', 'BaseProduct', 'BaseCodeId', 'BaseProductId');
}
BaseCodeId
является PK для BaseCode
и FK в BaseProduct
что указывая на это ПК, а BaseProductId
- это ПК на BaseProduct
, а в таблице Product
есть FK, который указывает на него.
Это все хорошо и хорошо, и для меня работает только денди.
Я хотел бы пойти на один уровень дальше, хотя, и определить что-то вроде следующего в моей Series
модели:
public function Products()
{
//It's here that I'd have no idea what to do - is there something like a three-level deep "hasManyThroughThrough" or something?
return $this->BaseProducts()-> /* and then whatever I'd do here to get the products */
}
public function BaseProducts()
{
return $this->hasManyThrough('BaseProduct', 'BaseCode', 'SeriesId', 'BaseCodeId');
}
Как получить все Product
с связанных с Series
, как это?
Спасибо, сэр. После того, как я начал тяжело копаться и возиться, я не смог получить «Красноречивый», чтобы согнуться, как мне хотелось бы, и пришел к такому же выводу. –