【问题标题】:Eloquent hasMany InversionEloquent hasMany Inversion
【发布时间】: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


【解决方案1】:

这就是你想要的

$subcategories = $subcategory->with('category') -> get();


foreach ($subcategories  as $row){


}

【讨论】:

  • 从这里,我如何访问相关模型的属性?
  • @mikekaperys 你是wleomce。简单的 foreach 循环,但这取决于您从表中获得的结果。虽然这是一个不同的问题,但提出一个新问题并提供示例数据。
猜你喜欢
  • 1970-01-01
  • 2017-05-10
  • 2016-03-17
  • 2019-11-16
  • 2020-05-31
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多