печать на рекурсивном дереве - PullRequest
0 голосов
/ 06 июня 2018

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');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...