使用Laravel将多个id从复选框传递到我的控制器

时间:2016-05-18 12:26:32

标签: laravel laravel-5 controller parameter-passing

我的数据库中有一个产品表。我从我的数据库中获取产品的名称,并在我的刀片上的引导程序表中打印该名称。目前每行行都有一个编辑按钮。如果我按下按钮,我将此产品的ID传递给我的控制器编辑功能。现在我想为此表中的每个产品添加复选框,如果我设置两个刻度(所以两个不同的产品),我想同时将两个ID传递给我的控制器。

看起来像这样:

            {!! Form::open(['action' => 'ProductController@tags']) !!}
            @foreach($products as $product)
                <tr>
                    <td>
                        {!! Form::checkbox('check', $product->id) !!}
                    </td>

                    <td>
                        {{ $product->name  }}
                    </td>

                    <td>
                    @foreach($product->tags as $tag)
                        {{$tag->name}},
                    @endforeach
                    </td>

                    <td>
                        {{ $product->created_at->format('d.m.y')  }}
                    </td>

                    <td>
                    <a href="{{ action('ProductController@edit', ['id' => $product->id]) }}">
                    <button class="btn btn-default" style="float: right;">Edit</button>
                    </a>
                    </td> 
                </tr>
            @endforeach
            {!! Form::close() !!}

如您所见,我已将产品ID设置为每个复选框的秒参数,但这个天堂当然效果不错。有人可以告诉我如何给每个复选框提供产品的ID并同时将他们的ID传递给我的控制器,如果它们标有勾号吗?

感谢您抽出宝贵时间:)

2 个答案:

答案 0 :(得分:3)

您是否尝试通过在复选框名称中添加“[]”来接受多个复选框值作为数组?

{!! Form::checkbox('check[]', $product->id) !!}

答案 1 :(得分:1)

我相信这个Form Facade来自Laravel 4,我从未使用它,但我认为这会产生一个输入,带有复选框类型,名称为'check',id为值,对吧?

您是否尝试将名称设为'check []'?这样,所有已检查的ID将在您的请求中的一个数组“check”中。至少在Laravel 5中,你可以尝试转储请求['check'],这应该返回一个数组os检查ids