Laravel 自定义授权失败时的错误页面

z0m*_*ale 2 laravel

当我的编辑请求授权失败时,我试图在 laravel 中显示自定义 403 文件。

我尝试过forbiddenResponse(),但事实证明它已经被淘汰了。

然后我尝试了failedauthorization(),但这也没有重定向并允许我进行编辑。

这是我的请求文件

public function authorize()
{
  $job_posting_id = $this->route('id');

  $job_posting = Job_postings::where('id', $job_posting_id)->where('user_id', user()->id)->exists();

  if($job_posting){
    return true;
  }

  return false;
}

public function failedAuthorization()
{

  return redirect('errors.dashboard.parent.403');
}
Run Code Online (Sandbox Code Playgroud)

我有一个名为“错误”的文件夹,其中有仪表板文件夹和错误文件所在的父文件夹。

如果授权失败,如何重定向到该页面?

ski*_*ido 8

return abort('403')
Run Code Online (Sandbox Code Playgroud)

Laravel 文档: https: //laravel.com/docs/5.4/errors#http-exceptions


如果你按照文档中的方式进行所有操作,你将实现:

  1. url 将保持不变。
  2. resources/views/errors/403.blade.php将显示模板。
  3. aslo 响应将有状态代码:403 Forbidden

您想将网址更改为http://www.examlpe.com/error403吗?

return abort('403') 不会进行重定向。它只是向客户端显示发生了错误。


在您的情况下,在单个脚本中显示不同的内容比在不同的脚本中显示更容易。尝试将单个错误脚本保留为“入口点”。并在该脚本中更改不同用户的输出。想象一下 403.blade.php 是许多 403 错误页面的布局。

  • 无论如何,这对我没有帮助,也不能回答问题。我已阅读文档。 (2认同)