Laravel Select Box

时间:2015-05-29 08:59:38

标签: php mysql arrays laravel

我正在努力获取一个数组输出来填充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

有关如何将其转换为单个数组的任何建议都将非常感激。

1 个答案:

答案 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, '');