无法在laravel关系中使用父模型获取子模型详细信息

时间:2014-09-08 17:36:40

标签: php laravel-4

大家好我正在尝试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;

代码有什么问题?

1 个答案:

答案 0 :(得分:0)

我明白了。父模型“类别” haMany '子类别'因此必须使用现有foreach中的另一个foreach来获取子类别详细信息。

 $cat=Cat::all();
 foreach($cat as $cat):
 $tmp=$cat->subcat;
 foreach($tmp as $subcat):
 echo $subcat->name;
 endforeach;
 endforeach;