我目前正在laravel做博客。我有一个列出所有帖子标题的页面。当我点击标题时,它会转到完整的帖子。所以,当我点击帖子时,它会从: localhost /发布到localhost / posts / {post_id}
我以前使用的代码是:
@foreach($postsLists as $post)
<h1><a href="/posts/{{$post->id}}"> {{$post->title}}</a></h1> @endforeach
但奇怪的是,当我在一篇特定的博客文章上发表评论时,我转到另一个博客,网址被破坏了。
将/ posts / {post_id}放在/ posts后面。所以我得到/ posts / posts / {post_id}。这导致什么都没有。
这是我用于评论的代码:
public function store(Request $request, post $post) {
$post->addComment(
new Comment($request->all())
);
return back();
}
这是博客文章的路线:
Route::get('posts/{post}', 'PostsController@showPost');
有人知道如何解决这个问题吗?我尝试了很多东西但没有任何作用。
谢谢!
答案 0 :(得分:1)
为确保为链接生成正确的URL,您可以使用Laravel的命名路由。在routes.php
:
Route::get('posts/{post}', 'PostsController@showPost')->name('posts.show');
在模板中:
<h1>{{ link_to_route('posts.show', $post->title, [$post->id]) }}</h1>
您也可以在控制器中使用它而不是back()
:
return redirect()->route('posts.show', [$post->id]);
答案 1 :(得分:0)
Address