遗漏或不正确的 slug 检查 Laravel 7
Missing or incorrect slug check Laravel 7
我最近接近Laravel 7,我想知道如何使脚本更易于导航和安全。特别是,我需要在基本页面中重定向访问者,以防他输入的 post 缺少或不正确的 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]);
}
如果用户没有 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。因此将处理异常。
我最近接近Laravel 7,我想知道如何使脚本更易于导航和安全。特别是,我需要在基本页面中重定向访问者,以防他输入的 post 缺少或不正确的 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]);
}
如果用户没有 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。因此将处理异常。