2014-11-24 132 views
0

首先,我在Laravel非常绿。因此,如果我使用任何错误terminlogy或不抓住一些应该是显而易见的东西,请考虑这一点。 我想填充数据库查询结果的下拉列表。使用数据库查询结果填充下拉列表

模型下拉条目:

Class Dropdown { 

    public static function getFilters() { 
      $filter = DB::select(DB::raw('SELECT DISTINCT filter AS filt 
            FROM filter.database')); 
    return $filter; 
    } 

    } 

控制器:

class FilterController extends BaseController { 
     public function getSql_Test() { 
      $dropdown = Dropdown::getFilters(); 
      return View::make('Dropdown.show', ['Dropdown' =>$dropdown]); 
     } 
    } 

什么我控制器现在所完成的是,以显示查询的结果(我想填充下拉)页。有人可以帮助我如何将这些条目传递到选择标签,并显示在我的视图?

回答

1

这很容易做到,而且很有趣(因为它很容易)!

$filter = DB::table('filter.database')->select(DB::raw('DISTINCT(filter) AS filt')) 
    ->lists('filt'); 

这会给你一个数组,其中的关键是一个整数,值是过滤器。

$filter = DB::table('filter.database')->select(DB::raw('DISTINCT(filter) AS filt')) 
    ->lists('filt', 'filt'); 

这将给你一个数组,其中的关键是过滤和值是过滤。

您可以通过像这样的变量延长你的观点推到视图:

return View::make('Dropdown.show')->with('dropdown', $dropdown); 

现在你可以让你的选择,只是推阵在该值应为:

echo Form::select('size', $dropdown); 

更多信息可以在这里找到:

http://laravel.com/docs/4.2/queries#selects

作为提示,留在laravel文档。他们是一个合作的待遇。

+0

感谢您的输入伴侣一堆。但是我得到错误信息***调用一个非对象***上的成员函数lists()。有小费吗? – 2014-11-24 09:30:39

+0

我认为这与使用雄辩的方式有关。我改变了一些东西。应该工作 – Matt 2014-11-24 09:46:09

+1

你是对的。这是我写我的问题的方式。它现在有效。非常感谢! – 2014-11-24 10:11:44