如何定义:laravel 5.2中的Cartegory和subcategory

时间:2016-04-18 05:18:10

标签: laravel laravel-5.2

我有一个这样的数据库表:

enter image description here

我想创建一个类别和子类别,如this

我已按照链接中的步骤操作,但我在该页面上遇到与manojsharma20相同的问题。

子类别也显示为类别。

如何避免子类别显示为类别。

enter image description here

2 个答案:

答案 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)

假设您的模型名称为类别

  1. 在类别模型上创建一个函数

    公共职能子女() {     返回$ this-&gt; hasMany(&#39; App \ Category&#39;,&#39; parent_id&#39;,&#39; id&#39;); }

  2. 在控制器上使用上述方法 $ categories = Category :: with(&#39; childs&#39;) - &gt; where(&#39; parent_id&#39;,0) - &gt; get();