0

を、私はこのエラーを取得しています:UrlGenerationException:[:topics.updateルート]のために必要なパラメータの欠落[URI:トピック/ {トピック}]

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

これは、編集するユーザーを取るのリンクです。

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

これは、編集用のコントローラです:

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

これがルートである:

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

これは、編集するためのフォームです:私はここで間違って行っている

<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> 

何?

+0

@ParantapParasharしかし、何のために??どのコントローラのために? –

+0

コードには非常に多くのエラーがあります。 –

+0

私はここにあなたの更新メソッドとRouteを置く必要があると思います。 –

答えて

1

の代わりに:

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

使用

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

あなたのルートのために、あなたが更新したいトピックのIDを渡す必要があるため。 Controller @ method表記の代わりにnamed routesを使用する方が合理的です。

+0

はい、うまくいきました。ありがとう。 –

1

あなたのupdate()メソッドが既にTopicControllerに実装されていることを認めましょう。

まず、あなたは別のルートを宣言する必要があります:

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

これにより、フォームのオープニングを変更:

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

それはすべき作品。

+0

まだ同じエラーです。 –

+0

あなたは 'Form :: open'パラメータを変更してもよろしいですか?次のコマンドを試してください: 'artisan route:clear && artisan cache:clear' –

+0

上記の解決策が働いた。私はポストのIDを渡していませんでした。それがエラーを作り出していました。 –

関連する問題