没有连接时,将Yii2重定向到页面

时间:2016-06-24 04:57:40

标签: php yii2

Yii2显示

  

SQLSTATE [HY000] [2002]尝试对无法访问的主机执行套接字操作。

当没有互联网访问权限时,如何将其重定向到某个网页,./index.php?r=site/neterror说?我尝试使用此代码

在web / index.php中执行此操作
<?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

1 个答案:

答案 0 :(得分:1)

以下数据库异常视图仅在条目脚本中YII_DEBUGtrue时显示不同的消息。

在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;
        }
    } 
  }


}