将数组数据从 laravel 视图发送到控制器

时间:2020-12-30 15:51:59

标签: arrays laravel controller laravel-blade

我正在尝试将一个数组从我的 Laravel 视图发送到我的控制器,但我只收到了一部分数据,这就是我所拥有的:

<form
                                    method="POST"
                                    action="{{ url('/forms/reports') }}"
                            >
                            <input type="hidden" name="_token" value="{{ csrf_token() }}">
                            @foreach ($results as $result)
                                       <input value="{{ $result->code }}" name="code"> 
                                       <input value="{{$result->name}}" name="name"> 
                                       <input value="{{$result->user}}" name="user"> 
                                       <input value="{{$result->number}}" name="number"> 
                            @endforeach
                            <div class="col-xs-9">
                            </div>
                            <div class="col-xs-3 container-download">
                                <button type="submit" class="btn btn-download" id="btn-download" >Download</button>
                            </div>
                            
                        </form>

但结果是这样的:

array (
  0 => '1',
  1 => 'Test Name 1',
  2 => 'user1',
  3 => '1',
), array (
0 => '2',
  1 => 'Test Name 2',
  2 => 'user2',
  3 => '2',
);

在我视图中的表格上,两行数据显示正确。 但是当我在我的控制器上接收完整的结果数组时,我只得到第二行,当我像这样打印时:

public function generateExcel(Request $request)
    {
    $code = $request->input('code');
    $name = $request->input('name');
    $user = $request->input('user');
    $number = $request->input('number');

    $users = [$code, $name, $user, $number];

    Log::debug($users);
}

我的日志显示了这个:

[2020-12-30 12:43:58] local.DEBUG: array (
  0 => '2',
  1 => 'Test Name 2',
  2 => 'user2',
  3 => '2',
) 

而且我不知道我是否应该先推送这些值,否则我又犯了另一个错误。有人能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

发生这种情况是因为您没有发送数组。你需要做这样的事情。

@foreach ($results as $result)
    <input value="{{ $result->code }}" name="code[]"> 
    <input value="{{$result->name}}" name="name[]"> 
    <input value="{{$result->user}}" name="user[]"> 
    <input value="{{$result->number}}" name="number[]"> 
@endforeach
相关问题