php - laravel 打印递归树
问题描述
文件.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');
}
}
解决方案
推荐阅读
- javascript - 如何删除 localhost:8000 上不断附着的 favicon.ico?
- xml - Why is this Importxml formula not working?
- ssl - Enabling Perfect Forward Secrecy in Jira 8
- swift - 数据结构 Swift FirebaseSnapshot
- javascript - POST 和 GET 方法在同一个按钮上
- javascript - 如何将新的输入选项添加到可拖动的可排序 Javascript 待办事项列表?
- svelte-3 - 使用 Sapper,如何在 template.html 中获取当前页面的 slug
- google-sheets - 在 Google 表格中获取第二个匹配项的索引
- javascript - 如何使用带有yup的react hook验证一个对象中的两个字段
- ios - XCode 11.1 模拟器无法安装目标 iOS 版本