在后期数据中构建关联数组

时间:2015-02-19 21:36:55

标签: php forms laravel

我有一个表单来更改对象集合。我能够传递值的集合,但该数组的键是0 - n。相反,我希望键是要更改的对象的id。

以下是我的表单:

    {{ Form::open(['route' => 'taps.update', 'data-abide' => true, 'method' => 'PUT']) }}
    {{ Form::hidden('bar_id', $bar->id)}}
        <div class="row">
            @foreach ($beer_tap_object as $beer_tap_id => $current_selection)
                <div class="large-6 columns">
                        <div class="row">
                            <div class="large-10 columns">
                                {{ Form::select('beertaps[]', [null=>''] + $beers, $current_selection, ['required'] ) }}
                                {{ Form::hidden('taps[]', $beer_tap_id)}}
                            </div>
                            <div class="large-2 columns">
                            </div>
                            <br /><br />
                        </div>
                </div>
            @endforeach
        </div>
        {{ Form::submit('Save') }}
    {{ Form::close() }}

这导致此帖子数据。我扔进隐藏的字段来构建对象ID数组。

  array (size=4)
    '_method' => string 'PUT' (length=3)
    '_token' => string 'asdfasdfasdfasdf' (length=40)
    'bar_id' => string '3' (length=1)
    'beertaps' => 
      array (size=6)
        0 => string '9' (length=1)
        1 => string '11' (length=2)
        2 => string '11' (length=2)
        3 => string '3' (length=1)
        4 => string '2' (length=1)
        5 => string '10' (length=2)
      'taps' => 
        array (size=6)
          0 => string '83' (length=2)
          1 => string '82' (length=2)
          2 => string '81' (length=2)
          3 => string '80' (length=2)
          4 => string '79' (length=2)
          5 => string '78' (length=2)

如何更改此值,以便第二个数组的值是第一个数组的键,而不是具有任意增量?

1 个答案:

答案 0 :(得分:1)

您可以输入密钥的名称

<input type="text" name="array[42]" val="something">

你会得到$ _POST ['arr'] [42] =='某事'。

当没有指定键并只留下“[]”时,每个下一个元素都会被推入这个数组,从0(0,1,2 ......)得到你很好的有序数组(这就是你要做的'我现在想要。)

在Laravel / Blade中,尝试:

{{ Form::select('beertaps['.$beer_tap_id.']', [null=>''] + $beers, $current_selection, ['required'] ) }}