【问题标题】:Laravel Foreign Keys Drop-down ListLaravel 外键下拉列表
【发布时间】:2014-06-10 14:26:10
【问题描述】:

我有 2 张桌子:

  • CUSTOMERS(id, full_name, company_id)
  • 公司(id,公司名称)

我已经创建了两个表之间的关系,它工作正常,因为我可以在客户视图中显示公司名称,如下所示:$customer->company->company_name

我现在遇到了客户createedit 视图的问题。我想在创建和编辑视图中将 company_name 作为下拉列表(表单选择)。然后将公司 ID 插入 CUSTOMERS 表。

【问题讨论】:

    标签: laravel laravel-4 eloquent


    【解决方案1】:

    您需要提供 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 是否存在于公司表中并保存客户,仅此而已。

    【讨论】:

      【解决方案2】:

      Jarek Tkaczyk 的回答非常好。但是,如果您想为创建表单设置默认值并避免预先选择 $companies 数组中的第一个元素,您可以在控制器中执行以下操作:

      $companies = Company::lists('company_name','id');
      $companies = array('0' => 'Select Company') + $companies;
      

      然后如 Jarek Tkaczyk 所说,将 $companies 数组传递给视图。

      注意:

      我做到了

      $companies = array('0' => 'Select Company') + $companies;
      

      为了保留数组键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-10
        • 2015-03-14
        • 2012-12-12
        • 2017-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多