file.blade.php
@foreach($places as $p)
<li>
<a href="">{{ $p->name }}</a>
@if($p->children->count())
@include ('tree', ['entries' => $p->children]);
@endif
<li>
@endforeach
</ul>
Я пытаюсь рекурсивно напечатать дерево, на мой взгляд, у меня есть только 2 строки в базе данных (родительская и дочерняя), здесь проблема в том, чтоp->children->count()
возвращает пустую строку вместо 0 и является ли она истиной, как правильно, как правильно считать детей?
Maximum function nesting level of '256' reached, aborting!
, потому что возвращает истину, даже если нет детей
вот как я получаю это в контроллере:
public function index()
{
$data = [];
$data['places'] = Place::with(['children', 'parent'])->get();
return view('places/index', $data);
}
ОБНОВЛЕНО:
class Place extends Model
{
public function parent()
{
return $this->belongsTo('App\Place', 'parent_id');
}
public function children()
{
return $this->hasMany('App\Place', 'parent_id');
}
}