我想从 Laravel 7 中的 MySQL 表中获取嵌套类别数据。这是 MySQL 表:------------------------|id | name | parent_id ||---|------|-----------|| 1 | A | NULL ||---|------|-----------|| 2 | B | NULL ||---|------|-----------|| 3 | C | NULL ||---|------|-----------|| 4 | a | 1 ||---|------|-----------|| 5 | ab | 4 ||---|------|-----------|| 6 | bc | 4 ||---|------|-----------|| 7 | ca | 4 ||---|------|-----------|| 8 | b | 2 ||---|------|-----------|| 9 | 2b | 8 ||---|------|-----------||10 | 3b | 8 ||---|------|-----------||11 | c | 3 ||---|------|-----------| 我想要以下输出:AaabbccaBb2b3bCc我当前的代码(在控制器中)是:public function sort_category($data, $opt){ $contents = Category::where('category_id', $data)->get(); foreach($contents as $c){ $opt .= "<option value='".$c->id."'>".$c->name."</option>"; $count = Category::where('category_id', $c->id)->count(); if($count > 0){ return $this->sort_category($c->id, $opt); } } return $opt;}public function add_category_form(){ $opt = ''; $html = $this->sort_category(NULL, $opt); return view('admin.add_category', ['categories' => $html]);}电流输出:Aaabbcca正如您所看到的,它不会迭代 B 和 C。任何帮助都会受到赞赏。
1 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
foreach 循环中有一个 return 语句。
这会导致仅category_id
处理第一个值,而不处理其他值。
您不应该直接返回,而是将返回值存储在例如数组中,然后在循环之后返回。
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消