У меня есть три модели Eloqent, которые я хотел бы относить друг к другу (категория, подкатегория и стиль) в стиле «один ко многим». Отношение hasMany работает правильно, но инверсия (принадлежит TO) не является.Eloquent hasMany Inversion
Модели Paragon \ Products \ Category, Paragon \ Products \ Subcategory и Paragon \ Products \ Style. Таблицы выглядеть следующим образом:
Категория Paragon \ Products \ Категория
ID ...
1
2
Подкатегория Paragon \ Products \ Подкатегория
ID Category ...
1 2
2 2
Стиль Paragon \ Products \ Style
ID Subcategory ...
1 1
2 1
Взаимосвязи выглядеть следующим образом:
Категория Paragon \ Products \ Категория
public function subcategories() {
return $this->hasMany('Paragon\Products\Subcategory', 'category');
}
Подкатегория Paragon \ Products \ Подкатегория
public function styles() {
return $this->hasMany('Paragon\Products\Style', 'subcategory');
}
public function category() {
return $this->belongsTo('Paragon\Products\Category', 'category');
}
Стиль Paragon \ Products \ Стиль
public function subcategory() {
return $this->belongsTo('Paragon\Products\Subcategory', 'id', 'subcategory');
}
В идеале, я хочу, чтобы иметь возможность называть $ subcategory-> category(); и возвратите экземпляр Paragon \ Products \ Category. В тот момент, когда я это делаю, я возвращаю экземпляр Builder. Я предполагаю, что у меня отсутствует какой-то метод извлечения из моих отношений ...
Любая помощь приветствуется, спасибо!
Кроме того, я хотел бы иметь возможность получить имя Subcategory и категории (как называется «имя») с помощью экземпляра модели Style. Это возможно? –