我对动态路线有一些问题。
我刚尝试在帖子表中添加了喜欢的值到某个帖子。
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。
如果我将方法替换为显示而非喜欢,则该代码有效(这意味着自定义方法受某些东西阻碍,代码本身正在运行)
提前致谢。
答案 0 :(得分:0)
你需要用下面这个替换你的href,如果$发布它的id值的$ post或者用 并通过邮寄更改get(此处您将数据发送到服务器,这意味着您将发布$ id)$post->id
替换它<a href="{!! route('post.like', [$post]) !!}" class="btn btn-success btn-xs">Like</a>
Route::post('/post/{$id}/like', 'PostController@like')->name('post.like');
答案 1 :(得分:0)
该死的....我只是忘了在自定义路线中删除$ sign。
应该是:
Route::get('post/{post}/like', 'PostController@like')->name('post.like');