Вам необходимо внести некоторые изменения в свой код, пожалуйста, найдите ниже шаг, чтобы изменить код
Шаг 1. Создайте связи с внешним ключом в файле модели, например
namespace App;
use Illuminate\Database\Eloquent\Model;
class Treeview extends Model
{
protected $table = 'treeview';
public $fillable = ['title','parent_id'];
/**
* Get the index name for the model.
*
* @return string
*/
public function childs() {
return $this->hasMany('App\Treeview','parent_id','id') ;
}
}
Шаг 2: Добавьте указанную ниже функцию в свой контроллер и внесите некоторые изменения в соответствии с таблицей и объектом модели
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function manageCategory()
{
$categories = Treeview::where('parent_id', '=', 0)->get();
return view('treeview/categoryTreeview',compact('categories')); // set the path of you templates file.
}
Шаг 3: Добавьте приведенный ниже код в вашу категорию файлов шаблонов для просмотра
<h3>Category List</h3>
<ul id="tree1">
@foreach($categories as $category)
<li>
{{ $category->title }}
@if(count($category->childs))
@include('treeview/manageChild',['childs' => $category->childs]) // Please create another templates file
@endif
</li>
@endforeach
</ul>
Шаг 4. Создайте еще один файл шаблона manageChild и добавьте ниже код.
<ul>
@foreach($childs as $child)
<li>
{{ $child->title }}
@if(count($child->childs))
@include('treeview/manageChild',['childs' => $child->childs])
@endif
</li>
@endforeach
</ul>
Выводится вывод как:
Category List
Cat_1
Cat_1_par_1
Cat_1_par_2
Cat_1_par_3
Cat_2
Cat_2_par_1
Cat_2_par_2
Cat_2_par_3
Cat_3
Больше информации я нашел по одной ссылке: https://itsolutionstuff.com/post/laravel-5-category-treeview-hierarchical-structure-example-with-demoexample.html