【问题标题】:Laravel form model binding with dropdown thats populated form tableLaravel 表单模型绑定与填充表单表的下拉列表
【发布时间】: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。也许这就是问题所在。能改吗?
  • 做到了。我非常担心从表中填充的下拉列表,以至于我错过了表单模型绑定用于将表列与表单名称属性匹配的基本步骤。

标签: php html forms laravel


【解决方案1】:

1) 您是否使用Form::close 正确关闭了表单?

2) 看来您的 $leads 数组可能落后了。不应该吗?:

$leads = Lead::lists('id', 'lead_name');

【讨论】:

  • 它不是倒退的,因为'key'(在这种情况下是id)实际上是lists方法的第二个参数。
  • @djt 是的,我使用表单关闭标签
猜你喜欢
  • 2018-10-05
  • 2015-05-13
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 2016-07-07
相关资源
最近更新 更多