【发布时间】:2015-08-27 14:11:15
【问题描述】:
我有三个 Eloqent 模型,我想以一对多的方式相互关联(类别、子类别和样式)。 hasMany 关系正常工作,但反转 (belongsTo) 不正常。
模型是 Paragon\Products\Category、Paragon\Products\Subcategory 和 Paragon\Products\Style。表格如下所示:
类别 Paragon\Products\Category
ID ...
1
2
子类别 Paragon\Products\子类别
ID Category ...
1 2
2 2
风格 Paragon\Products\Style
ID Subcategory ...
1 1
2 1
关系如下所示:
类别 Paragon\Products\Category
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\Style
public function subcategory() {
return $this->belongsTo('Paragon\Products\Subcategory', 'id', 'subcategory');
}
理想情况下,我希望能够调用 $subcategory->category();并返回一个 Paragon\Products\Category 实例。在我这样做的那一刻,我得到了一个 Builder 实例返回。我假设我的关系中缺少某种获取方法...
感谢任何帮助,谢谢!
【问题讨论】:
-
另外,我希望能够使用样式模型的实例获取子类别和类别的名称(都称为“名称”)。这可能吗?
标签: php laravel model eloquent relationship