Yii2显示
SQLSTATE [HY000] [2002]尝试对无法访问的主机执行套接字操作。
当没有互联网访问权限时,如何将其重定向到某个网页,./index.php?r=site/neterror
说?我尝试使用此代码
<?php
use yii\db\Exception;
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../config/web.php');
try
{
(new yii\web\Application($config))->run();
}
catch(Exception $e) {
header("Location: ./index.php?r=site/error"); /* Redirect browser */
exit();
}
但我得到的只是The page isn't redirecting properly
。
答案 0 :(得分:1)
以下数据库异常视图仅在条目脚本中YII_DEBUG
为true
时显示不同的消息。
在Yii ErrorHandler类中定义使用自己的视图在UserException上你必须为false YII_DEBUG
class ErrorHandler extends \yii\base\ErrorHandler{
....
protected function renderException($exception){
..
$useErrorView = $response->format === Response::FORMAT_HTML && (!YII_DEBUG || $exception instanceof UserException);
if ($useErrorView && $this->errorAction !== null) {
$result = Yii::$app->runAction($this->errorAction);
if ($result instanceof Response) {
$response = $result;
} else {
$response->data = $result;
}
}
}
}