在laravel中通过slug显示数据时找不到404

折纸

我正在尝试显示使用slug的帖子,但始终找不到404。

控制者

    public function show($slug)
{
    $post = Post::findorFail($slug);
    $tags = Tag::all();

    return view('page.detail', compact('post', 'tags'));
}

路线

Route::get('/post/{slug}', 'PageController@show');

视图

@foreach($post as $item)
<a href="/post/{{$item->slug}}" class="btn-custom">Read More <span
 class="ion-ios-arrow-forward">
@endforeach

谢谢

蒂姆·刘易斯

findOrFail()检查Post.php模型的主键(通常为)id,因此您的查询当前为:

SELECT * FROM posts WHERE id = 'contents-of-slug'

如果执行以下操作,您的代码应该可以工作:

$post = Post::where('slug', $slug)->firstOrFail();

请参阅文档;它显示了这个确切的示例:

https://laravel.com/docs/8.x/eloquent#not-found-exceptions

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章