【发布时间】:2016-02-23 04:56:05
【问题描述】:
我在 Laravel 5.1 中有一个表单,它使用从 db 表填充的下拉菜单。当表单处于编辑模式时,除了 db 表中的其他结果之外,我希望选择与表中已有的 id 匹配的下拉菜单项。
公司表
array([ 'id' => 1, 'name' => 'ABC Company', 'lead' => 2]);
领导桌
array([
array(['id' => 1, 'lead_name' => 'Yellow Pages']),
array(['id' => 2, 'lead_name' => 'Internet']),
array(['id' => 3, 'lead_name' => 'Other'])
]);
CompanyController.php
public function edit($id)
{
$data = Company::where('id', $id)->first();
$leads = Lead::lists('lead_name', 'id');
return view('company.edit', compact('data', 'leads'));
}
公司/edit.blade.php
{!! Form::model($data, ['method' => 'PATCH', 'action' => ['CompanyController@update', $data->id], 'class' => 'form-horizontal']) !!}
{!! Form::select('leads', $leads, null, ['class' => 'selectpicker']) !!}
我想要完成的是,当我编辑 id '1' 时,我希望下拉菜单显示 id '2' 选择了他的值 'Internet' 然后显然用户可以选择其他 2 个选项,然后像往常一样更新表格。
除了下拉菜单之外,是否可以使用模型绑定?当前菜单已填充但未选择 id 2。
【问题讨论】:
-
您说:“当前菜单已填充但未选择 id 2”。但是现在从下拉菜单中选择了什么值?
-
@FreeLightman 无论下拉列表中的第一项是什么,就好像它是一个没有选定属性的空白 html 表单
-
这里
Form::select('leads', (...)你有名字leads。但是表中的名字是lead。也许这就是问题所在。能改吗? -
做到了。我非常担心从表中填充的下拉列表,以至于我错过了表单模型绑定用于将表列与表单名称属性匹配的基本步骤。