遗漏或不正确的 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。因此将处理异常。