【问题标题】:Laravel delete multiple checkboxLaravel 删除多个复选框
【发布时间】:2017-05-16 18:21:31
【问题描述】:

我是删除多个复选框的新手,所以我需要一点帮助。我已经在网上搜索了几个小时,但我无法解决我的问题。

我有一个待办事项列表,我的网页上的数据库显示了一些待办事项。如何一键删除所有选中的复选框?

我正在使用 Laravel 5.4

ToDoController:

public function destroy()
   {
    $checked = Request::input('checked')['checked'];
    $checked->delete();
   }

刀片:

@foreach ($todo as $todoresult)

            <form method="get" action="/todo/destroy/">

          <div class="checkbox">
           <label><input type="checkbox" value="{{$todoresult->id}}" name="checked[]">{{$todoresult->todoinfo}}</label><br />

          </div> 

            @endforeach

            </div>
            <div class="panel-footer">

            <button class="btn btn-success" type="submit">Verwerken</button>

            </form>

路线:

Route::get('/todo/destroy/', 'ToDoController@destroy');

我该怎么做?我的路由会是什么样子?

【问题讨论】:

    标签: php laravel checkbox


    【解决方案1】:

    类似下面的方法可能会起作用:

    public function destroy() {
       $checked = Request::input('checked',[]);
       foreach ($checked as $id) {
            Todo::where("id",$id)->delete(); //Assuming you have a Todo model. 
       }
       //Or as @Alex suggested 
       Todo::whereIn($checked)->delete();
    }
    

    【讨论】:

    • Todo::whereIn('id', $checked)-&gt;delete()
    • 您好,感谢您的回答。当我使用这个时,我在 url 中得到这个:/todo/destroy?checked%5B%5D=26&checked%5B%5D=27。 26 和 27 是正确的 ID。但是我该如何路由呢?
    【解决方案2】:

    您不需要循环查询。 可以使用 WhereIn 删除多个 id

       public function destroy() {
           $checked = Request::input('checked',[]);
          Todo::whereIn("id",$checked)->delete(); 
    
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-06
      • 1970-01-01
      • 2012-05-21
      • 2012-01-21
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      相关资源
      最近更新 更多