如何处理动态创建的表单laravel 5.4

时间:2017-04-06 06:47:53

标签: laravel

我想知道如何从动态创建的表单中获取复选框的名称。首先,我以单独的形式显示每个数据记录,然后如果需要删除记录,我们将能够删除。我可以给somename + id指定不同的名称。但是我怎么知道控制器中的名字。由于目前尚不清楚控制器中的名称是什么,我无法删除记录。我在laravel 5.4中这样做。这是我的代码 -

@if (isset($allcolors))
    @foreach ($allcolors as $color)
        <tr>
            <form method="post" action="/delete">
                {{csrf_field()}}
                <input type="hidden" name="_method" value="DELETE">
                <td>
                    <span class=""><input type="checkbox" name="deletecolor[{{$color->id}}]" value="{{$color->id}}"></span>
                </td>
                <td>
                    <div style="background:{{$color->web_color}}">a</div>
                </td>
                <td>{{$color->color_name}}</td>
                <td>
                    <button type="submit" class="btn btn-danger">
                        Delete
                    </button>
                </td>
            </form>
        </tr>
    @endforeach
@endif

然后在表单提交上我想要获取我正在做的事情 -

public function destroy(Request $request)
{
    //
    $id = $request->input('deletecolor');
    $affected = DB::update("DELETE FROM vehicle_color where id = ?", [$id]);
    //echo $affected==1?"Successfully Deleted":"Delete Fail";


}

1 个答案:

答案 0 :(得分:1)

我看到你有"Microsoft SQL: Incorrect syntax near the keyword 'EXEC'.。为什么不根据它删除它们?

$color->id

在你的控制器中:

@if (isset($allcolors))
    @foreach ($allcolors as $color)
        <tr>
          <form method="post" action="/delete">
            {{csrf_field()}}
            <input type="hidden" name="_method" value="DELETE">
            <td><span class=""><input type="checkbox" name="deletecolor[{{ $color->id }}]" value="{{$color->id}}"></span></td>
            <td><div style="background:{{$color->web_color}}">a</div></td>
            <td>{{$color->color_name}}</td>
            <td><button type="submit" class="btn btn-danger"  data-toggle="modal" data-target="#colorDelPopup">Delete</button></td>
          </form>
        </tr>
    @endforeach
@endif

这应该可以解决问题。