it-swarm.com.de

So löschen Sie einen einzelnen Datensatz in Laravel 5?

Mit Laravel 5 Ich versuche, einen einzelnen Datensatz innerhalb eines Controllers zu löschen. Hier der Code:

public function destroy($id)
{
     $employee = Employee::find($id);
     $employee->delete();
     return Redirect::route('noorsi.employee.index');
}

Mein Seitencode für die Ansicht lautet:

<td><a href="employee/{{$employee->id}}/destroy" class="btn btn-default">Delete</a></td>

Meine Route ist:

Route::delete(employee.'/{id}', array('as' => 'noorsi.employee.destroy','uses' => Employeecontroller.'@destroy'));

Das hat nicht funktioniert.

Wie kann ich die Implementierung beheben?

7
Si Va

Aus der offiziellen Laravel 5 Dokumentation:

Vorhandenes Modell löschen

$user = User::find(1);
$user->delete();

Löschen eines vorhandenen Modells nach Schlüssel

User::destroy(1);
User::destroy([1, 2, 3]);
User::destroy(1, 2, 3);

In allen Fällen stellt die Zahl in Klammern die Objekt-ID dar. Sie können jedoch auch eine delete-Abfrage für eine Reihe von Modellen ausführen:

$affectedRows = User::where('votes', '>', 100)->delete();

http://laravel.com/docs/5.0/eloquent#insert-update-delete

18
Luis González

Das Löschen der Laravel mithilfe der Funktion destroy ist also möglich

<form action="{{ url('employee' , $employee->id ) }}" method="POST">
    {{ csrf_field() }}
    {{ method_field('DELETE') }}
    <button>Delete Employee</button>
</form>

Ein Beispiel finden Sie hier http://laravel.com/docs/5.1/quickstart-intermediate#adding-the-delete-button Und Ihre Route sollte so aussehen

Route::delete('employee/{id}', array('as' => 'employee.destroy','uses' => '[email protected]'));

Es funktioniert zB mit: Route::resource('employee', 'EmployeeController'); und es sollte auch funktionieren, wie Sie Ihre Route zerstören.

7
Saad

Offensichtlich haben Sie ein schlechtes Routing-Problem. Sie versuchen, ein Verb "get" zu verwenden, um eine Route zu erreichen, die mit einem Verb "delete" definiert ist.

Wenn Sie einen Anker zum Löschen eines Datensatzes verwenden möchten, sollten Sie diese Route hinzufügen:

Route::get('/employee/{id}/destroy', ['uses' => '[email protected]']);

oder verwenden Sie weiterhin ein Verb zum Löschen. Sie müssen jedoch ein Formular (keinen Anker) mit einem Parameter namens _method und mit dem Wert 'delete' verwenden, um anzugeben, dass Sie ein Verb 'delete' verwenden.

2
Amarnasan
  Route::get('/showcon/{del_id}/delete','[email protected]');
  public function deletemsg($del_id){

  $mail=Mail::find($del_id);

  $mail->delete($mail->id);

  return redirect()->back(); 
  }

  <a href="showcon/{{$m->id}}/delete">del</a>
1
loqman chookili