我有一个行业级别未知的导航栏,它可以有子行业,我想编写递归关系以获得最上面的一个并将其显示为类别。我试过这个:
public function category()
{
if($this->parent_id == 0){
return $this;
} else {
$this->parent_industry->category();
}
}
但我不断得到 LogicException:关系方法必须返回 Illuminate\Database\Eloquent\Relations\Relation 类型的对象
如何写递归关系并返回$this?
最佳答案
试试这个关系:
public function children()
{
return $this->hasMany('App\MenuItem', 'parent_id');
}
public function parent()
{
return $this->belongsTo('App\MenuItem', 'parent_id');
}
public function getRoot()
{
$cur = $this;
while ($cur->parent) {
$cur = $cur->parent;
}
return $cur;
}
关于php - Laravel 递归关系并返回 $this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48448886/