Laravel选择框的PHP类别树到数组
我正在努力获取数组输出以填充Laravel中的选择框。基本上,使用Laravel,您可以通过刀片发送一个数组来填充selectLaravel选择框的PHP类别树到数组,php,mysql,arrays,laravel,Php,Mysql,Arrays,Laravel,我正在努力获取数组输出以填充Laravel中的选择框。基本上,使用Laravel,您可以通过刀片发送一个数组来填充select [ '1'=>'Parent Category 1', '2'=>'Sub Category Name 1', '3'=>'Parent Category 2', '4'=>'Sub Category Name' ] 我目前正在做一个快速模拟,以填充一个html列表并正确输出,但经过数小时的研究后,我完全不知
[
'1'=>'Parent Category 1',
'2'=>'Sub Category Name 1',
'3'=>'Parent Category 2',
'4'=>'Sub Category Name'
]
我目前正在做一个快速模拟,以填充一个html列表并正确输出,但经过数小时的研究后,我完全不知道如何将其转换为一个数组,如上面的示例所示
因此,我的代码如下所示:
public function categories($parent_id) {
$q = $this->region->select(['title','id'])->where('parent_id','=',$parent_id)->orderBy('sort','asc')->get();
echo '<ul>';
foreach($q as $row)
{
echo '<li>';
echo $row->title;
echo '</li>';
$this->categories($row->id);
}
echo '</ul>';
}
任何关于如何将其转换为单个阵列的建议都将不胜感激 试试这个。我无法尝试,所以代码可能有bug
public function categories_list($parent_id, $Indent) {
$q = $this->region->select(['title','id'])->where('parent_id','=',$parent_id)->orderBy('sort','asc')->get();
$arr = array();
foreach($q as $row)
{
$arr[] = $Indent . $row->title;
$newIndent = $Indent == '' ? ' -- ' : ' '. $Indent;
$arr = array_merge($arr, $this->categories($row->id, $newIndent));
}
return $arr;
}
$array = $this->categories_list($id, '');
你想要一个没有结构的普通数组吗?一个普通数组应该可以工作,只要它保持orderBy,我基本上只需要它像第一个例子一样输出。如果我能像破折号一样缩进潜水艇,那就好了。谢谢。我得到了未定义的变量:arr.@limit添加了初始化谢谢,我已经修复了,但是现在得到,array\u merge:Argument 3不是数组。太棒了。谢谢你的帮助!!这看起来是正确的,非常感谢。
public function categories_list($parent_id, $Indent) {
$q = $this->region->select(['title','id'])->where('parent_id','=',$parent_id)->orderBy('sort','asc')->get();
$arr = array();
foreach($q as $row)
{
$arr[] = $Indent . $row->title;
$newIndent = $Indent == '' ? ' -- ' : ' '. $Indent;
$arr = array_merge($arr, $this->categories($row->id, $newIndent));
}
return $arr;
}
$array = $this->categories_list($id, '');