【问题标题】:How to load option's id from database in Laravel 5.1如何在 Laravel 5.1 中从数据库中加载选项的 id
【发布时间】:2016-04-27 09:59:32
【问题描述】:

我尝试从数据库加载我的选项,我的值设置正确但 id 加载不正确:

控制器:

    $country_list = contry::lists('name','id');
    $country_list = array_merge(array('0' => 'Please Select...'),   $country_list->toArray());

查看:

    {!! Form::select('country_id',$country_list,null,['class'=>'form-control']) !!}

数据库:

"1"=>"USA"
"2"=>"IRAN"
--> "5"=>"ENGLAND" <--

在浏览器中加载:

"0"=>"Please Select"
"1"=>"USA"
"2"=>"IRAN"
--> "3"=>"ENGLAND" <--

检查元素结果:

<select class="form-control" name="country_id">
    <option value="0" selected="selected">Please Select...</option>
    <option value="1">USA</option>
    <option value="2">IRAN</option>
    <option value="3">ENGLAND</option
</select>

我需要与数据库中的 id 列相同的选项 id

【问题讨论】:

  • 请发布您的前端代码
  • 请。可以吗?
  • 请改进您的问题。
  • 您的问题很好,确切地显示了问题所在。您可以在这里找到解决方案:stackoverflow.com/questions/17462354/…
  • @JoelHinz 我询问了 Laravel 框架

标签: php laravel laravel-5 laravel-5.1 laravel-blade


【解决方案1】:

array_merge 重新索引合并的数组,所以这是你的问题。

http://php.net/manual/en/function.array-merge.php "输入数组中带有数字键的值将在结果数组中使用从零开始的递增键重新编号。"

为了避免这种使用

$country_list = [0 => 'Please Select...'] + $country_list->toArray();

或者只是:

$country_list = contry::lists('name','id')->toArray();
$country_list[0] = 'Please Select...';

【讨论】:

    【解决方案2】:

    你在这里做错了数组合并:

    $country_list = array_merge(array('0' =&gt; 'Please Select...'), $country_list-&gt;toArray());

    你应该这样做:

    $country_list = array('0' =&gt; 'Please Select...') + $country_list-&gt;toArray();

    不覆盖键。

    【讨论】:

      【解决方案3】:

      array_merge 将覆盖键,因此使用加号 (+) 来组合数组。我认为它会解决你的问题:

      $country_list = array('0' => 'Please Select...') + $country_list->toArray();
      

      【讨论】:

        猜你喜欢
        • 2020-06-30
        • 2016-04-21
        • 1970-01-01
        • 2015-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        相关资源
        最近更新 更多