2017-03-07 7 views
1

私はポストのスラッグを使って親しみやすいURLを作成しようとしています。それでは、私がこれまでに行ったことは、これは私がポストhttp://example.com/slug-from-databaseに行くとき、私はエラーRouteServiceProviderがクエリを見つけることができません

ModelNotFoundExceptionを持っている私のBlogController

public function show(Post $post){ 

    return view("blog.show", compact('post')); 
} 

の私RouteServiceProvider

これでありますBuilder.php行426:

モデル[App \ Post]のクエリ結果はありません。

なぜこのエラーが発生するのですか?

Route::bind('post', function($slug){ 
    return Post::published()->where('slug')->first(); 
}); 

変更にこのようなクエリをし、それが動作します::

+0

だけで、チェックしたいあなたが呼ばれるモデルを持っています'App \ Post'の名前空間を持つ' Post'ですか? – Spholt

+0

はい、あります。私もそれを投稿することができますが、私は問題はここに関連していません。 –

+0

サービスプロバイダに名前空間を指定していることに気づいた場合、これは 'App \ Http \ Controllers \ Post'で' Post'モデルを探している可能性がありますか?エラーの出力がそれ以上なければ、それは少し難しいです。これはちょっとした長時間です。tbh – Spholt

答えて

3

あなたはここに、あなたのWHERE句で$slugを逃している

Post::published()->where('slug', $slug)->first(); 
関連する問題