我正在努力获得一个数组输出来填充Laravel中的选择框。基本上,使用Laravel,你可以通过blade发送一个数组来填充一个select。
[
'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>';
}
^输出
Parent Category 1
-Subcat
-Subcat
Parent Category 2
-Subcat
-Subcat
任何关于如何将其转换为单个数组的建议将不胜感激。
试试这个。我不能尝试,所以代码可能有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, '');