2016-09-02 7 views
1

私は現在laravelでブログを作っています。私はすべての投稿のタイトルをリストするページを持っています。タイトルをクリックすると、完全なポストに移動します。だから私はそれから行くのポストをクリックしたとき:Laravelからblogpostへの経路

@foreach($postsLists as $post) 
<h1><a href="/posts/{{$post->id}}"> {{$post->title}}</a></h1> @endforeach 

しかし、奇妙なことは、ときに私です:/投稿/ {post_idのを} localhostに はlocalhost /ポスト

私はそれを行うために使用されるコードがあります特定のブログ投稿にコメントを付けて、別のブログにURLが壊れています。

投稿/投稿/ {post_id}の後ろ/投稿。だから私は/ posts/posts/{post_id}を取得します。それは何にもつながりません。

これは私が私のコメントに使用するコードです:

public function store(Request $request, post $post) { 
    $post->addComment(
     new Comment($request->all()) 
    ); 

    return back(); 
} 

そして、これはブログ記事へのルートです:

Route::get('posts/{post}', '[email protected]'); 

誰かがこの問題を解決する方法を知っていますか?私は多くのことを試みましたが、何もできません。

ありがとうございます!

答えて

1

リンクに適切なURLが生成されるように、Laravelの名前付きルートを使用できます。 routes.phpで:

テンプレートで
Route::get('posts/{post}', '[email protected]')->name('posts.show'); 

<h1>{{ link_to_route('posts.show', $post->title, [$post->id]) }}</h1> 

かわりback()のも、あなたのコントローラでそれを使用することができます。

return redirect()->route('posts.show', [$post->id]); 
0
public function store(Request $request, $postId) { 
    $post = Post::findOrFail($postId); 
    $post->addComment(
     new Comment($request->all()) 
    ); 

    return back()->with('success', 'done!'); 
} 
関連する問題