Как отобразить детей - PullRequest
       5

Как отобразить детей

0 голосов
/ 18 февраля 2020

Вот моя база данных отдела. Она имеет имя идентификатора и parent . При использовании jstree я отобразил отдел, который имеет parent 0 с условием if (этот отдел - root), теперь у ребенка есть родитель , такой же, как id root. Я не могу найти способ отобразить детей этого root. Заранее спасибо. Это моя база данных: enter image description here

  <div id="jstree">
    @foreach($departments as $department)
    <ul>
    @if($department->parent == 0)
      <li>{{ $department->name }}
        <ul>
          <li id="child_node_1">Child node 1</li>
          <li>Child node 2</li>
        </ul>
      </li>
      @endif
    </ul>
    @endforeach
  </div>
  <button>Click</button>

Я хочу, чтобы это выглядело так:

  • Веб-разработка

    • Backend

      • PHP
  • Рабочий стол Dev

ОБНОВЛЕНИЕ: это то, что я пробовал с jQuery DepartmentController. php

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use  App\Department;
use Illuminate\Support\Facades\DB;

class DepartmentController extends Controller
{

    public function treeView(){       
        $departments =  DB::table('departments')->where('parent', '=', 0)->get();

         $tree='<ul id="browser" class="filetree"><li class="tree-view"></li>';
        foreach ($departments as $department) {
             $tree .='<li class="tree-view closed"<a class="tree-name">'.$department->name.'</a>'; //first department
             if(count($department->childs)) {
                $tree .=$this->childView($department);
            }
        }
        $tree .='<ul>';
         return $tree;
        return view('files.treeview',compact('tree'));
    }
    public function childView($department){                 
            $html ='<ul>';
            foreach ($department->childs as $arr) {
                if(count($arr->childs))
                {
                $html .='<li class="tree-view closed"><a class="tree-name">'.$arr->name.'</a>';                  
                        $html.= $this->childView($arr);
                    }
                    else
                    {
                        $html .='<li class="tree-view"><a class="tree-name">'.$arr->name.'</a>';                                 
                        $html .="</li>";
                    }                                   
            }            
            $html .="</ul>";
            return $html;
    } 

и это то, что я написал в сети. php файл

Route::get('/department',array('as'=>'jquery.treeview','uses'=>'Admin\DepartmentController@treeView'));

Это на моей модели отдела

   //category has childs
   public function childs() {
    return $this->hasMany('App\Department','parent','id') ; 
}

, но я получаю эту ошибку Неопределенное свойство: stdClass :: $ childs

...