首页 > 解决方案 > 在控制器中接收多个输入

问题描述

我有一个要提交的表单,其中包含多个要通过 foreach 循环发送的输入,如下所示:

@foreach($price as $key => $prices)
    <div class="col-lg-2 text-center">
        {{$date[$key]}}
        <input type="hidden" value="{{$date[$key]}}" name="dates{{$key}}">
        <hr>
        {{$prices}}
    </div>
@endforeach

当我提交表单时,我尝试像这样捕获:

foreach ($request->input('dates') as $values) {
    $date[] = $values[0];
}
echo $date;

但我得到的错误是:

Invalid argument supplied for foreach()

因为我做了以下事情:

$request->input('dates')

它返回 null 。

标签: phparrayslaravel

解决方案


您需要在属性[]中添加符号:name

<input type="hidden" value="{{$date[$key]}}" name="dates[{{$key}}]">
                                              -- notice ^   and  ^ 

没有它,你目前有类似的东西

 <input type="hidden" value="{{$date[$key]}}" name="dates41">
 <input type="hidden" value="{{$date[$key]}}" name="dates42">   

这些只是POST数组中的两个独立字段。


推荐阅读