如何将部门显示为 Laravel 中的节点

How to display departments as nodes in Laravel

我有一个 table i db 'departments'。我希望它用 jstree.I 显示它有一个 parent_id,根节点是 0,另一个是是 1。我在以父子关系显示它们时遇到问题。这是我的代码和我尝试过的代码,但问题是它显示如下:

 - IT Department
     - IT Department
 - IT Department
     - IT Department

我想要这样

 - IT Department
     - Research and development
 - Finance
     - Product development

    <ul>
    if({{ $department->parent_id }} == 0)
    {

      <li>{{ $department->name }}
        <ul>
          <li id="child_node_1">{{ $department->id }}</li>
          <li >{{ $department->name }}</li>
        </ul>
      </li>    
    }
    if({{ $department->parent_id }} == 1)
    {
      <li>{{ $department->name }}
      <ul>
          <li id="child_node_2">{{ $department->id }}</li>
          <li >{{ $department->name }}</li>
        </ul>
      </li>
    }

    </ul>

听起来您可能想要使用 laravel 的 ORM 创建自引用关系。查看 one to one relationship.

您完成的代码可能如下所示:

Department.php

class Department extends Eloquent {

    public function parents()
    {
        return $this->belongsTo('Department', 'parent_id');
    }

    public function children()
    {
        return $this->hasMany('Department', 'parent_id');
    }
}

department.blade.php

<li>{{ $parent->name }}
    <ul>
    @foreach($department->parents as $parent)
        <li id="child_node_1">{{ $parent->id }}</li>
        <li>{{ $parent->name }}</li>
    @endforeach
    </ul>
</li>