2016-12-01 2 views
0

das ist meine Form iLaravel eine Datei NotFoundHttpException Löschen

public function destroyFile($file_name, $id) 
{ 
    File::findOrFail($id)->delete(); 
    $file_path = storage_path('documents').'/'.$file_name; 
    $destinationPath = $file_path; File::delete($file_path); 
    return redirect('/documents'); 
} 

löschen meiner Ansicht

  {!! Form::open(['url' => ['documents/{file}/{id}', $file->name, $file->id],'method' => 'delete']) !!} 
     {!! Form::token() !!} 
     {!! Form::submit('Delete') !!} 
     {!! Form::close() !!} 

Steuerung, in der Datei aus der Datenbank und der Original-Datei Dies ist die Route

Route::delete('documents/{file}/{id}','[email protected]'); 

Und wenn ich Submit-Taste drücken, bekomme ich NotFoundHttpException

Antwort

2

Versuch zu verwenden, um dies

{!! Form::open(['method' => 'DELETE', 'action' => ['[email protected]', $file->name, $file->id] ]) !!} 

Eigentlich ihre Antworten richtig sind. Sie müssen die _Methode DELETE haben. Wenn ich das benutze. Laravel mache es für mich.

Oder Sie können dies auf dem Formular setzen

<input type="hidden" name="_method" value="DELETE"> 

oder

{!! Form::hidden('_method', 'DELETE') !!} 
0

Es ist nicht möglich, diese Methode mit HTML-Formularen in den meisten Browsern zu verwenden, die meisten unterstützen nur GET und POST. Der Grund für diese Anfrage funktioniert nicht, weil der Browser dies als eine GET-Anfrage sendet, was der Standard ist.

GET, POST, PUT und DELETE sind jedoch in den meisten gängigen Browsern unterstützt, wenn XMLHttpRequests mit (Ajax).

0

Fügen Sie {{ method_field('DELETE') }} zu Ihrem Formular hinzu.

{!! Form::open(['url' => ['documents/{file}/{id}', $file->name, $file->id],'method' => 'delete']) !!} 
{{ method_field('DELETE') }} 
{!! Form::token() !!} 
{!! Form::submit('Delete') !!} 
{!! Form::close() !!} 
+0

ich legen Sie die Methode Feld aber sein die gleichen Fehler – OunknownO

Verwandte Themen