Как отобразить отделы в виде узлов в Laravel - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть таблица i db 'департаменты'. Я хочу, чтобы она отображалась с помощью jstree. У меня есть parent_id, узел root, который равен 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>

enter image description here

1 Ответ

2 голосов
/ 17 февраля 2020

Звучит так, как будто вы, возможно, захотите создать самореферентные отношения, используя ORM laravel. Проверьте отношения один к одному .

Ваш готовый код может выглядеть примерно так:

Отдел. 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>
...