【问题标题】:Missing or incorrect slug check Laravel 7缺少或不正确的 slug 检查 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');

标签: laravel slug


【解决方案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。因此将处理异常。

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 2021-11-15
    • 2016-06-12
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    相关资源
    最近更新 更多