在laravel 4.2中显示查询到form :: select的结果

时间:2016-06-08 01:34:02

标签: php laravel laravel-4

我在使用它时非常新,所以即时通讯卡在我需要显示输出的某个查询的结果作为我的视图中的下拉列表。在我的控制器中,这是查询

//categories
    $cats  = DB::table('nsa_subcategory AS sc')
             ->join('nsa_maincategory AS mc' , 'sc.maincategoryid' , '=' , 'mc.maincategoryid')
             ->select('sc.subcategoryid' , 'sc.subcategoryname' , 'mc.maincategoryname')
             ->get();
    // dd($cats);

我需要在下拉列表中显示subcategorynamemaincategoryname,并将subcategoryid im的值留在此处。有关如何实现这一点的任何想法?非常感谢你!

2 个答案:

答案 0 :(得分:1)

试试这个

<强>控制器

$cats  = DB::table('nsa_subcategory AS sc')
             ->join('nsa_maincategory AS mc' , 'sc.maincategoryid' , '=' , 'mc.maincategoryid')
             ->select('sc.subcategoryid' , 'sc.subcategoryname' , 'mc.maincategoryname')->lists('id', 'categorie name')
             ; // change this with the right data , the first wil be the value the second will be displayed

查看

foreach ($cats as $maincat => $subcat) { 
 echo $subcat;
}

<强> DROPDOWNLIST

{{ Form::select('size', $cats,'Choose category') }}

即使剂量工作,基本部分是->lists()函数,将其添加到查询中将准备要在下拉列表中显示的数据 如果您遇到任何类型的错误,请发表评论,我会在需要时更新答案

答案 1 :(得分:1)

所述查询将为您提供一个Collection对象,但您需要的是一个key =&gt;值对的数组。以下应该做:

$cats  = DB::table('nsa_subcategory AS sc')
         ->join('nsa_maincategory AS mc' , 'sc.maincategoryid' , '=' , 'mc.maincategoryid')
         ->lists(DB::raw('CONCAT(sc.subcategoryname," " , mc.maincategoryname) AS cat_name'),'cat_id');

这将为您提供所需的结果。如果您正在使用Laravel的表单助手,您可以直接传递它:

{{Form::select('name',$cats)}}