OctoberCMS 401、402、403、503、400错误代码处理
OctoberCMS 401, 402, 403, 503, 400 error code handling
我只想问一下octobercms是不是只能设置两种类型的错误???
404 [通过使用 /404 创建页面 url]
500 [通过使用 /error url 创建页面]
我们如何设置 400、401、402、403、503、400 等??????
这 2 个是特殊情况,作者已经在 Cms Main Controller
中编写了代码,但对于其他情况,我们需要自己编写代码:)
嗯,所有这些都与 HttpException
有关,所以这是我们实际设置和抛出的代码,
App::abort(403, 'Access is forbidden to the requested page.' /* message */);
现在这些都是HttpException
,我们可以使用App::error
截取它们。您需要将此代码添加到您的 plugin boot
方法中。
//\App::error(function(\Exception $exception) { // for handling all Exceptions
// for handling http related exceptions
\App::error(function(
\Symfony\Component\HttpKernel\Exception\HttpException $exception) {
dd($exception->getStatusCode()); /* 403 */ // 400, 401, 402, 403, 503, 400 etc
// Handle the exception...
});
你可以在这里查看status-code
,随意处理。
参考:https://octobercms.com/docs/services/error-log#http-exceptions
如果有人仍然无法将状态代码传递到错误页面,只需将其添加到 Plugin.php
中的 boot
方法即可
App::error(function(\Symfony\Component\HttpKernel\Exception\HttpException $exception) {
$controller = new \Cms\Classes\Controller(\Cms\Classes\Theme::getActiveTheme());
$controller->setStatusCode($exception->getStatusCode());
return $controller->run('/error');
});
并使用
检查/error
上的状态代码
{% if this.controller.getStatusCode() == 403 %}
我只想问一下octobercms是不是只能设置两种类型的错误???
404 [通过使用 /404 创建页面 url]
500 [通过使用 /error url 创建页面]
我们如何设置 400、401、402、403、503、400 等??????
这 2 个是特殊情况,作者已经在 Cms Main Controller
中编写了代码,但对于其他情况,我们需要自己编写代码:)
嗯,所有这些都与 HttpException
有关,所以这是我们实际设置和抛出的代码,
App::abort(403, 'Access is forbidden to the requested page.' /* message */);
现在这些都是HttpException
,我们可以使用App::error
截取它们。您需要将此代码添加到您的 plugin boot
方法中。
//\App::error(function(\Exception $exception) { // for handling all Exceptions
// for handling http related exceptions
\App::error(function(
\Symfony\Component\HttpKernel\Exception\HttpException $exception) {
dd($exception->getStatusCode()); /* 403 */ // 400, 401, 402, 403, 503, 400 etc
// Handle the exception...
});
你可以在这里查看status-code
,随意处理。
参考:https://octobercms.com/docs/services/error-log#http-exceptions
如果有人仍然无法将状态代码传递到错误页面,只需将其添加到 Plugin.php
boot
方法即可
App::error(function(\Symfony\Component\HttpKernel\Exception\HttpException $exception) {
$controller = new \Cms\Classes\Controller(\Cms\Classes\Theme::getActiveTheme());
$controller->setStatusCode($exception->getStatusCode());
return $controller->run('/error');
});
并使用
检查/error
上的状态代码
{% if this.controller.getStatusCode() == 403 %}