如何重定向另一个页面,而不是在Laravel 5.4中重定向到中止403错误页面

如何重定向另一个页面,而不是在Laravel 5.4中重定向到中止403错误页面,laravel,laravel-5,laravel-5.3,laravel-5.4,Laravel,Laravel 5,Laravel 5.3,Laravel 5.4,我的问题是,每当出现403错误时,我应该重定向到我自己的自定义页面或显示类似的flash消息(在同一页面上)。我如何在Laravel中实现这一点?您可以创建特定HTTP错误代码的视图。如果在resources/views/errors/403.Blade.php中设置刀片模板,它将用于所有403错误响应 或者,如果需要更复杂的内容,可以为403响应设置自定义异常处理程序。我发现了一个很好的例子。您可以为特定的HTTP错误代码创建一个视图。如果在resources/views/errors/40

我的问题是,每当出现403错误时,我应该重定向到我自己的自定义页面或显示类似的flash消息(在同一页面上)。我如何在Laravel中实现这一点?

您可以创建特定HTTP错误代码的视图。如果在
resources/views/errors/403.Blade.php
中设置刀片模板,它将用于所有403错误响应


或者,如果需要更复杂的内容,可以为403响应设置自定义异常处理程序。我发现了一个很好的例子。

您可以为特定的HTTP错误代码创建一个视图。如果在
resources/views/errors/403.Blade.php
中设置刀片模板,它将用于所有403错误响应


或者,如果需要更复杂的内容,可以为403响应设置自定义异常处理程序。我发现了一个很好的例子。

你可以使用app/Exceptions/Handler.php来实现这一点

public function render($request, Exception $e)
{
    if ($e->getStatusCode() == 403) {
        return redirect('yourpage'); // this will be on a 403 exception
    }

    return parent::render($request, $e); // all the other exceptions
}

您可以为此使用app/Exceptions/Handler.php

public function render($request, Exception $e)
{
    if ($e->getStatusCode() == 403) {
        return redirect('yourpage'); // this will be on a 403 exception
    }

    return parent::render($request, $e); // all the other exceptions
}
之后,只需将页面返回到该页面


在这之后,只需将页面返回到该页面。

您可以使用app/Exceptions/Handler.php进行此操作,正如上面所述,或者您可以使用try-catch进行基本错误处理

try {
 do Something //
}
catch (Exception $e) {
//log error in log file or dv
return redirect->('home');
}

您可以使用app/Exceptions/Handler.php进行上述操作,也可以使用try-catch进行基本错误处理

try {
 do Something //
}
catch (Exception $e) {
//log error in log file or dv
return redirect->('home');
}

嗨,Thomas,这不起作用,它正在重定向到默认错误页面,而不是我想重定向的地方,谢谢。这应该可以,你能检查一下状态代码是否确实是403吗?我想我选择了错误的函数,它应该是
getStatusCode
而不是
getCode
。这不可靠
$e->getStatusCode()
经常对未定义的方法Symfony\Component\Debug\exception\FatalThrowableError::getStatusCode()抛出一个异常
调用-例如,在一个
令牌不匹配异常上
嗨,Thomas,它正在重定向到默认错误页,而不是我想重定向的地方,谢谢。这应该可以,你能检查一下状态码是403吗?我想我选择了错误的函数,它应该是
getStatusCode
而不是
getCode
。这不可靠<代码>$e->getStatusCode()
经常对未定义的方法Symfony\Component\Debug\exception\FatalThrowableError::getStatusCode()抛出异常
调用-例如在
令牌不匹配异常上