我有一个这样的数据库表:
我想创建一个类别和子类别,如this。
我已按照链接中的步骤操作,但我在该页面上遇到与manojsharma20相同的问题。
子类别也显示为类别。
如何避免子类别显示为类别。
答案 0 :(得分:2)
这是我的工作示例,
假设您的模型名称为Category
/*---------------------------------------------------------
* Relationship with same table, means recursive key
* --------------------------------------------------------
*/
//using this relation, you will get parent children
public function cat_childs(){
return $this->hasMany('App\Category', 'parent_id', 'id');
}
//using this relation, it will tell you, who is the parent of children
public function cat_parent(){
return $this->belongsTo('App\Category', 'parent_id', 'id');
}
因此,使用此方法,您将获得parent
及其children
$list = \App\Category::with('cat_childs')->all();
//this will show you parent and its children
echo "<pre>";
print_r($list);
echo "</pre>";
答案 1 :(得分:1)
假设您的模型名称为类别
在类别模型上创建一个函数
公共职能子女() { 返回$ this-&gt; hasMany(&#39; App \ Category&#39;,&#39; parent_id&#39;,&#39; id&#39;); }
在控制器上使用上述方法 $ categories = Category :: with(&#39; childs&#39;) - &gt; where(&#39; parent_id&#39;,0) - &gt; get();