我可以使用哪种查询来获取每个类别的子类别?

时间:2019-02-24 19:27:07

标签: php laravel octobercms

我正在使用此查询来获取每个类别的孩子

$this['children'] = Cat::first()->children;

但是它只获取第一个类别的子类别,并且所有其他类别都出现相同的子类别。关于如何解决此问题的任何想法?

模型关系

 public function children(){

    return $this->hasMany(static::class,'parent_id','id');

表结构

类别表

id

cat_title

parent_id

nest_right

nest_left

嵌套深度

sl

parent_id = 0(类别)

parent_id> 0(子类别)

1 个答案:

答案 0 :(得分:1)

要获取每个类别的子类别,您首先需要获取每个类别的ID并在查询中使用它。 (例如,在foreach循环中)

$this['children'] = Cat::find($id)->children;

如果您需要同时获取所有类别及其相关子类别,则需要热切加载:

$allCatsWithTheirChildren = Cat::with('children')->all();