【问题标题】:Send array data from laravel view to controller将数组数据从 laravel 视图发送到控制器
【发布时间】:2021-04-07 02:53:05
【问题描述】:

我正在尝试将一个数组从我的 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',
) 

而且我不知道我是应该先推送这些值还是我犯了另一个错误。谁能帮我解决这个问题?

【问题讨论】:

    标签: arrays laravel controller laravel-blade


    【解决方案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
    

    【讨论】:

    • 谢谢!那是错误,现在工作正常。
    猜你喜欢
    • 2018-01-05
    • 2020-08-26
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多