我正在努力获取一个数组输出来填充Laravel中的选择框。基本上,使用Laravel,您可以发送一个数组来填充选择刀片。
[
'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
有关如何将其转换为单个数组的任何建议都将非常感激。
答案 0 :(得分:0)
试试这个。我不能尝试,所以代码可能有错误
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, '');