我有两张桌子:
我已经创建了两个表之间的关系,并且它工作正常,因为我可以在客户视图中显示公司名称,如下所示:$customer->company->company_name
我现在遇到了客户create
和edit
观看的问题。我想在创建和编辑视图中将company_name作为下拉列表(Form Select)。然后将公司ID插入CUSTOMERS表。
答案 0 :(得分:6)
您需要提供Form :: select与公司作为数组('id'=>'name'):
// Controller, repo or wherever you want it:
$companies = Company::lists('company_name','id');
// $companies passed to the view, then in the create view:
{{ Form::select('company_id', $companies, null, $options) }}
// edit view:
{{ Form::model($customer, array('route' => array('YourCustomerUpdateRoute', $customer->id))) }}
...
{{ Form::select('company_id', $companies, null, $options) }}
// form model binding autopopulates the form, so correct option will be selected
提交表单后验证输入,检查公司表中是否存在company_id,并保存客户,这就是全部。
答案 1 :(得分:0)
Jarek Tkaczyk的回答非常好。但是,如果您想为create form创建一个默认值并避免预先选择$ companies数组中的第一个元素,您可以在控制器中执行以下操作:
$companies = Company::lists('company_name','id');
$companies = array('0' => 'Select Company') + $companies;
然后将$ companies数组传递给视图,就像Jarek Tkaczyk所说。
注意:
我做了
$companies = array('0' => 'Select Company') + $companies;
以保留数组键。