动态路由在Laravel 5.5中不起作用

时间:2017-10-05 19:50:16

标签: php laravel

我对动态路线有一些问题。

我刚尝试在帖子表中添加了喜欢的值到某个帖子。

web.php

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

我在资源控制器PostControleler中定义了一个自定义方法。

PostController中@等

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

并在刀片php视图中链接

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

点击链接时,没有任何反应,只显示404

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

为什么动态路线不起作用。

P.S。

如果我将方法替换为显示而非喜欢,则该代码有效(这意味着自定义方法受某些东西阻碍,代码本身正在运行)

提前致谢。

2 个答案:

答案 0 :(得分:0)

你需要用下面这个替换你的href,如果$发布它的id值的$ post或者用$post->id替换它

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

并通过邮寄更改get(此处您将数据发送到服务器,这意味着您将发布$ id)

Route::post('/post/{$id}/like', 'PostController@like')->name('post.like');

答案 1 :(得分:0)

该死的....我只是忘了在自定义路线中删除$ sign。

应该是:

Route::get('post/{post}/like', 'PostController@like')->name('post.like');