如何将部门显示为 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>
我有一个 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>