使用数据库填充下拉菜单会导致Laravel 4

jer*_*auf 8 php mysql forms drop-down-menu laravel-4

我正在尝试使用Laravel 4中的数据库结果填充下拉菜单.我对Laravel非常新.这实际上是我的第一个网站,我正在学习.所以,请告诉我,如果我使用了错误的术语或没有足够的信息.

我有一个公司信息数据库,我需要用户能够从下拉列表中选择一家公司.或者如果公司不在数据库中添加它.

对于选择菜单,它需要像这样:

[公司名称结果]

我在我的控制器中使用此代码:

$companies = RecordCompany::get();
$company_selector = array();

foreach($companies as $company) {
   $company_selector[$company->id] = $company->id;
   $company_selector[$company->company_name] = $company->company_name;
}

return View::make('admin.record_new', array('company_selector' => $company_selector));
Run Code Online (Sandbox Code Playgroud)

这就是我的看法:

@if(count($client_selector)>0)
   {{ Form::select('company_id', $company_selector, array_values($company_selector)[0]) }}
@endif 
Run Code Online (Sandbox Code Playgroud)

免责声明:我在网上找到了这个代码.

首先,我不明白它将如何填充值和选项文本而不告诉它在何处放置数据.

其次,回来的错误是出乎意料的.当我拿出[0]表单代码时,它告诉我那$company_selectorundefined.

我在这做错了什么?

SUB*_*0DH 16

为了使用RecordCompany模型中的所有记录填充下拉菜单,您可以在视图中执行以下操作:

{{ Form::select('company_id', RecordCompany::lists('company_name', 'id')) }}
Run Code Online (Sandbox Code Playgroud)

注意:在Laravel 5中,该方法lists已被弃用.请 pluck改用.

代码说明:

  1. 这些Form::select方法创建了一个HTML选择标记.
  2. company_id 是选择标记的名称.
  3. 第二个参数是select标签的选项.的lists任何模型(RecordCompany在这种情况下)的方法生成包含传递给该方法(参数的关联数组idcompany_name在模型的数据库表的所有记录在这种情况下).

如果需要,还可以lists从控制器调用该方法,然后将值传递给视图,如下所示:

在控制器中

$company_lists = RecordCompany::lists('company_name', 'id');

return View::make('admin.record_new', array('company_lists' => $company_lists));
Run Code Online (Sandbox Code Playgroud)

在视图中

{{ Form::select('company_id', $company_lists) }}
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看Laravel 4文档以生成下拉列表:http://laravel.com/docs/html#drop-down-lists