2017-05-16 73 views
1

我是新來刪除多個複選框,所以我需要一點幫助。我一直在網上搜索幾個小時,但我無法解決我的問題。Laravel刪除多個複選框

我有一個待辦事項列表,在我的網頁上有一些待辦事項從數據庫中顯示。如何在一次點擊中刪除所有選中的複選框?

我使用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/', '[email protected]'); 

我該怎麼做?我的路由會如何呢?

回答

2

像下面這樣可能會工作:

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(); 
} 
+1

'藤::其中( '身份證',$選中) - >刪除()' – Alex

+0

您好,感謝您的回答。當我使用這個我得到這個在網址:/ todo /銷燬?檢查%5B%5D = 26和檢查%5B%5D = 27。 26和27是正確的ID。但是,我怎麼能路線呢? – itvba

+0

這工作。你是一個傳奇!乾杯小夥子 – itvba

0

你並不需要循環查詢。 您可以使用其中刪除多個ID

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

}