laravel打印递归树

时间:2018-06-06 06:27:21

标签: php laravel tree

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!

因为即使没有孩子也会返回true

这就是我在控制器中获取它的方式:

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');
    }
}

0 个答案:

没有答案