缺少或不正确的 slug 检查 Laravel 7
Posted
技术标签:
【中文标题】缺少或不正确的 slug 检查 Laravel 7【英文标题】:Missing or incorrect slug check Laravel 7 【发布时间】:2020-09-02 04:05:32 【问题描述】:我最近接近 Laravel 7,我想知道如何使脚本更易于导航和安全。特别是,我需要在基本页面中重定向访问者,以防他输入的帖子缺少或不正确的 slug。
**localhost/post/my-test-slug** = ok
**localhost/post/** = missing slug, redirect to index
等等,我已经尝试过 isset / empty 控制器,但我不明白为什么它不起作用。我该如何解决?
public function show($slug)
$post = DB::table('post')->where('slug', $slug)->first();
return view('show', ['post' => $post]);
【问题讨论】:
我们需要代码来看看有什么问题,你已经尝试了什么? 你能附上你的路线吗? Route::get('/post/slug', 'PostController@show')->name('show'); 【参考方案1】:如果用户没有 slug 值,您可以通过在页面 404 上重定向来做到这一点,如下面的一个示例:
public function show($slug)
if($slug == null)
abort(404);
$post = DB::table('post')->where('slug', $slug)->first();
if($post == null)
abort(404);
return view('show', ['post' => $post]);
这不是一个准确的答案,但是是的,您在页面控制器中使用此逻辑来检测路由参数,如果未找到,则将其重定向到页面 404。因此将处理异常。
【讨论】:
以上是关于缺少或不正确的 slug 检查 Laravel 7的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 在 Laravel 7 中将 PascalCase 字符串转换为可用的 slug?