Laravel路线到博文

时间:2016-09-02 12:20:10

标签: php laravel controller routes

我目前正在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');

有人知道如何解决这个问题吗?我尝试了很多东西但没有任何作用。

谢谢!

2 个答案:

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