php - 如何停止递归函数php [laravel]
问题描述
我使用 Laravel,我有表 tbl_menu
//In model:
public function child()
{
return $this->hasMany('App\Menu', 'parentID', 'ID');
}
//in controller
public function getCountChild()
{
$menu= Menu::where('ID', 2318)->first();
echo '<br>Input: ' . $menu->id;
$gioihan=20;
$countChild = $this->recursiveCountChild($menu, $gioihan);
echo '<br>countChild : ' . $countChild ;
}
public function recursiveCountChild($parent, $gioihan, $limit = 0)
{
$childs = $parent->child;
$limit += $childs->count();
if ($limit < $gioihan && $childs->count() > 0) {
foreach ($childs as $item) {
echo '<br>'. $item->affID.', ';
//$this->dequyCountChild($item, $gioihan, $limit);
return $this->dequyCountChild($item, $gioihan, $limit);
}
}elseif($limit>=$gioihan){
echo "<br>Done: ".$limit;
return $limit;
}
return $limit;
}
结果: 不好的结果
我想获得 $limit 但不能。
看来,他们只在左边跑,而不在右边检查。帮我。谢谢
解决方案
推荐阅读
- google-sheets - 有没有办法从 Google 表格单元格中获取“标题文本”?
- java - resolveFully 不解析与回调相关的 PathItem 的嵌套引用或普通引用
- javascript - 任意数量页面的 ReactJS 上下文
- python - 如何解决在 Python 3.8 上运行的 PyCharm 上安装 XG-Boost 时遇到的这个问题?
- python - python准备的请求-删除不需要的标头
- android - android中嵌套图形片段中的控制工具栏后退按钮和汉堡图标
- sorting - 如果我在剑道网格字符串类型列中有数字字段,则无法正确排序
- kotlin - 我可以使用具有多个密封类级别的 kotlinx 序列化程序作为父级和嵌套调用吗?
- reactjs - 在同一个 Dockerfile 中反应客户端和 Golang 服务器
- angular - 命令在 Angular PrimeNG 中不显示确认对话框