Php laravel 5.8:未找到slug 404

Php laravel 5.8:未找到slug 404,php,laravel,model,laravel-5.8,slug,Php,Laravel,Model,Laravel 5.8,Slug,我想使用slug,但当我点击并跳转到一个特定的帖子时,404 找不到显示 URL工作正常,所以我不明白为什么我看不到 结果 web.php Route::get('results/{post}', 'ResultsController@show')->name('posts.show'); post.php public function getRouteKeyName() { return 'slug'; } resultcontroller.php public funct

我想使用slug,但当我点击并跳转到一个特定的帖子时,404 找不到显示

URL工作正常,所以我不明白为什么我看不到 结果

web.php

Route::get('results/{post}', 'ResultsController@show')->name('posts.show');
post.php

public function getRouteKeyName()
{
    return 'slug';
}
resultcontroller.php

public function show(Post $post)
{
    $recommended_posts = Post::latest()
                        ->whereDate('date','>',date('Y-m-d'))
                        ->where('category_id','=',$post->category_id)
                        ->where('id','!=',$post->id)
                        ->limit(7)
                        ->get();


    $posts['particular_post'] = $post;
    $posts['recommended_posts'] = $recommended_posts;

    return view('posts.show',compact('posts'));
}
 public function store(CreatePostsRequest $request)
{
    //upload the image to strage
    //dd($request->image->store('posts'));
    $image = $request->image->store('posts');

    //create the posts
    $post = Post::create([
        'image' => $image,
        'category_id' => $request->category,
        'title' => $request->title,
        'slug' => str_slug($request->title),
        'place' => $request->place,
        'map' => $request->map,
        'date' => $request->date,
        'organizer' => $request->organizer,
        'organizer_link' => $request->organizer_link,
        'published_at' => $request->published_at,
        'description' => $request->description
    ]);
桌子

PostsController.php

public function show(Post $post)
{
    $recommended_posts = Post::latest()
                        ->whereDate('date','>',date('Y-m-d'))
                        ->where('category_id','=',$post->category_id)
                        ->where('id','!=',$post->id)
                        ->limit(7)
                        ->get();


    $posts['particular_post'] = $post;
    $posts['recommended_posts'] = $recommended_posts;

    return view('posts.show',compact('posts'));
}
 public function store(CreatePostsRequest $request)
{
    //upload the image to strage
    //dd($request->image->store('posts'));
    $image = $request->image->store('posts');

    //create the posts
    $post = Post::create([
        'image' => $image,
        'category_id' => $request->category,
        'title' => $request->title,
        'slug' => str_slug($request->title),
        'place' => $request->place,
        'map' => $request->map,
        'date' => $request->date,
        'organizer' => $request->organizer,
        'organizer_link' => $request->organizer_link,
        'published_at' => $request->published_at,
        'description' => $request->description
    ]);
result.blade.php

<a href="{{ route('posts.show', [$post->id,$post->slug]) }}" class="title-link">{{ str_limit($post->title, 20) }}</a>

您已将模型定义为使用
slug
键进行隐式路由模型绑定。您定义的路由,
results/{post}
,采用1个参数,
post
。您正在向route helper传递一个id和一个slug,route helper使用该id作为参数:

route('posts.show', [$post->id, $post->slug])
route('posts.show', $post->slug);
// or
route('posts.show', ['post' => $post->slug]);
对于此路由,您不需要传递Post的id,您需要使用slug作为参数:

route('posts.show', [$post->id, $post->slug])
route('posts.show', $post->slug);
// or
route('posts.show', ['post' => $post->slug]);