2016-11-02 3 views
0

Ich versuche, Tabelle mit Checkboxen zu machen, wo Admin mehrere Produkte überprüfen und löschen kann. Bisher habe ich das Formular gemachtVersuchen, mehrere Datensätze auf einmal in Laravel zu löschen

@foreach($products as $product) 
    {{ Form::open() }} 
      <input type="checkbox" name="delete[]" value="{{ $product->product_id }}"> 
      <a class="btn btn-primary" href="{{ URL::to('/admin/products/multiDdelete') }}?_token={{ csrf_token() }}">Delete</a> 
    {{ Form::close() }} 
@endforeach 

Dies ist in meiner Route

Route::get ('/admin/products/multiDdelete', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 

Und das in der Steuerung

public function testDelete() { 

    $delete = Input::only('delete')['delete']; 

    $pDel = Product::where('product_id', $delete); 

    $pDel->delete(); 
    return Redirect::to('/admin/test')->with('message', 'Product(s) deleted.'); 
} 

bisher, wenn ich Produkte überprüfen und traf Delete Seite neu laden und ich bekomme Produkt (e) gelöscht aber Produkte werden nicht gelöscht. Ich denke, das Problem ist, wie ich ID's passiere .. aber ich kann es nicht herausfinden.

Antwort

2

Ihre Anfrage liefert hier nichts Nützliches. Selbst mit ->get() würde es eine Sammlung zurückgeben, die Sie nicht so verwenden können, wie Sie möchten. Sie können stattdessen der Abfrage einen Löschvorgang hinzufügen:

Product::whereIn('product_id', $delete)->delete(); 
Verwandte Themen