0

Ich erhalte diese Fehlermeldung:UrlGenerationException: Fehlende erforderliche Parameter für [Route: topics.update] [URI: Themen/{Thema}]

Missing required parameters for [Route: topics.update] [URI: topics/{topic}]. (View: C:\xampp\htdocs\phpboards\resources\views\topics\edit.blade.php) 

Dies ist Link, der Benutzer nehmen zu bearbeiten:

<a href="/boards/topics/edit/{{$topic->id}}" class="btn btn-default">Edit</a> 

Dies ist der Controller für edit:

$topic = Topic::find($id); 
return view('topics.edit')->with('topic', $topic); 

Dies ist die Route:

Diese
Route::get('/boards/topics/edit/{id}', '[email protected]'); 

ist die Form für edit:

<div class="container"> 
    {!! Form::open(['action' => '[email protected]', 'method' => 'POST']) !!} 
     <div class="form-group"> 
      {{ Form::label('title', 'Title') }} 
      {{ Form::text('title', $topic->topic_title, ['class' => 'form-control', 'placeholder' => 'Title of the Post']) }} 
     </div> 
     <div class="form-group"> 
      {{ Form::label('desc', 'Desc') }} 
      {{ Form::textarea('desc', $topic->topic_body, ['class' => 'form-control', 'placeholder' => 'Description of the Post']) }} 
     </div> 
     {{ Form::submit('Submit', ['class' => 'btn btn-default']) }} 
    {!! Form::close() !!} 
</div> 

Was ich hier falsch gemacht haben ??

+0

@ParantapParashar Aber wofür ?? und für welche Steuerung ?? –

+0

Es gibt so viele Fehler in Ihrem Code. –

+0

Ich denke, du musst hier deine Update-Methode und Route angeben. –

Antwort

1

Statt:

{!! Form::open(['action' => '[email protected]', 'method' => 'POST']) !!} 

Verwendung

{!! Form::open(['url' => route('topics.update', $topic->id), 'method' => 'POST']) !!} 

weil für Ihre Route benötigen Sie id Thema, das Sie aktualisieren möchten, zu übergeben. Auch ist es vernünftiger, named routes statt Controller @ Methode Notation zu verwenden.

+0

Ja, es hat funktioniert. Danke, Mann. –

1

Nehmen wir an, Ihre update() Methode ist bereits auf Ihrem TopicController implementiert.

Zuerst müssen Sie eine andere Route erklären:

Route::put('/boards/topics/edit/{id}', '[email protected]'); 
//  ^^^ 

dann Formular Öffnung durch diese ändern:

{!! Form::open(['action' => ['[email protected]', $topic->id], 'method' => 'put']) !!} 
//              ^^^^^^^^^^    ^^^ 

es funktioniert sollte.

+0

Immer noch der selbe Fehler .. –

+0

Sind Sie sicher, dass Sie Ihre 'Form :: open' Parameter geändert haben? Probieren Sie folgenden Befehl aus: 'artisan route: clear && artisan cache: clear' –

+0

Die obige Lösung funktioniert. Ich habe die ID der Post nicht weitergegeben. Das hat den Fehler verursacht. –

Verwandte Themen