我有问题写正确选择与我的Page表订购。
实际实施:
private function findPageBySlug($slug)
{
$page = Page::with('children')
->where('active', 1)
->where('slug', $slug)
->first();
if (property_exists($page, 'chidlren')) {
return $page->whereHas('children', function ($child) {
return $child->where('active', 1)->orderBy('order', 'asc');
});
} else {
return $page;
}
}
我需要选择Page的所有子项并按顺序列排序,并且孩子可以有另一个孩子等等对深度没有限制。是否可以写这个选择?
谢谢你的帮助
如果您想获得所有孩子而不是孩子过滤页面,请使用with()
。代替:
return $page->whereHas('children', function ($child) {
return $child->where('active', 1)->orderBy('order', 'asc');
});
做:
return $page->with(['children' => function ($child) {
return $child->where('active', 1)->orderBy('order', 'asc');
}]);
如果你想同时过滤和加载孩子,请连接qazxsw poi和qazxsw poi