大家好我正在尝试laravel模型关系。但我无法使用子模型获取父模型详细信息。
我有一个父表'category' ('id', 'name', 'created_at', 'updated_at')
和子表'subcategory' ('id', 'cid', 'name', 'created_at', 'updated_at')
。以下是我的模型:
类别模型:
class Cat extends Eloquent
{
protected $table="category";
public function Subcat()
{
return $this->hasMany('CatSub', 'cid', 'id');
}
}
子类别模型:
class CatSub extends Eloquent
{
protected $table="subcategory";
public function cat()
{
return $this->belongsTo('Cat', 'cid', 'id');
}
}
当我尝试使用子模型获取父模型的详细信息时,它的工作正常
$subcat=CatSub::all();
foreach($subcat as $subcat):
echo $subcat->cat->name;// displays list of parent categories
endforeach;
但是当我尝试使用父模型访问子模型细节时,它无法正常工作。
显示错误'未定义属性$ name '。
以下是代码:
$cat=Cat::all();
foreach($cat as $cat):
echo $cat->subcat->name;
endforeach;
代码有什么问题?
答案 0 :(得分:0)
我明白了。父模型“类别” haMany '子类别'因此必须使用现有foreach中的另一个foreach来获取子类别详细信息。
$cat=Cat::all();
foreach($cat as $cat):
$tmp=$cat->subcat;
foreach($tmp as $subcat):
echo $subcat->name;
endforeach;
endforeach;