2017-10-05 8 views
0

ダイナミックルートに問題があります。Laravel 5.5でダイナミックルートが動作しません

私はちょうどいくつかの投稿に投稿テーブルのお気に入りの値を追加しようとしました。

web.php

Route::get('post/{$id}/like', '[email protected]')->name('post.like'); 
Route::resource('post', 'PostController'); 

と私は、リソースコントローラPostControlelerで1つのカスタムメソッドを定義します。

のPostController @リンクをクリックすると、何も起こりません

<a href="{{route('post.like', $post)}}" class="btn btn-success btn-xs">Like</a> 

ブレードPHPビューで

public function like($id) 
{ 
    $post = Post::find($id); 
    $post->likes++; 
    $post->save(); 
    return redirect()->back(); 
} 

やリンクなどの、ちょうど404

Sorry, the page you are looking for could not be found. 

なぜそれを表示動的ルートは機能しません。

P.S. 代わりのように事前に

おかげで(それがカスタムメソッドは、何かによって、コード自体が機能しているが阻害されることを意味します)を示すために、私は方法を交換する場合

このコードは動作します。

+0

が、これはLike

+0

はい、私はすでに以前にそれを使用しようとしないし、何もまだ404の方法が成功を定義することを意味するが、値がincereasedされていないと表示されていない表示するには、その、ちょうど404 –

答えて

0

$投稿する場合は、それはid値の$ポストですか$post->id

<a href="{!! route('post.like', [$post]) !!}" class="btn btn-success btn-xs">Like</a> 

と交換し、郵送で入手変更(ここでは、あなたがにデータを送信している以下の本であなたのHREFを交換し、SHUREを作成する必要がありますあなたが$ idを投稿することを意味するサーバー)

+0

万一どんな方法でも働くことができます。私はすべてのコードをリソースコントローラ 'PostController'からのデフォルトのメソッド表示に似たメソッドに入れ、それが動作します!カスタムメソッドの動作を妨げる要因は何ですか? –

+0

いいえ、ここであなたは好きな列の値を更新するメソッドのように$ idを送ります。そのためには、postメソッドを使うべきです。 web.phpのルートを次のように変更します: 'Route :: resource( 'post'、 'PostController'); Route :: get( 'post/{$ id}/like'、 'PostController @ like') - >名前( 'post.like'); ' –

+0

はい、しかしpostメソッドでも機能しません。どのような方法でも同じです...私は何かがカスタムメソッドを使用することを妨げると思います(resourseメソッドで、そのコードが動作し、値が(またgetメソッドで)増加しています) –

0

くそー。私はちょうど$サインインのカスタムルートを削除するのを忘れました。

は次のようになります。

Route::get('post/{post}/like', '[email protected]')->name('post.like'); 
関連する問題