Php 如何动态更改Yii错误处理程序?

Php 如何动态更改Yii错误处理程序?,php,error-handling,yii,Php,Error Handling,Yii,在Yii的config.php中,我们有一条语句,它声明哪个控制器是默认控制器,并且在应用程序中只有一个错误处理程序: 'errorHandler' => array( 'errorAction' => 'site/error', ), 因此,我需要在我的站点控制器下有一个actionError(),以便在我的站点中预览错误,但这不是我真正需要的 我试图在扩展基本CController(Yii的基本控制器)的自定义控制器中动态更改Yii::app()->errorHandl

在Yii的config.php中,我们有一条语句,它声明哪个控制器是默认控制器,并且在应用程序中只有一个错误处理程序:

'errorHandler' => array(
    'errorAction' => 'site/error',
),
因此,我需要在我的站点控制器下有一个
actionError()
,以便在我的站点中预览错误,但这不是我真正需要的

我试图在扩展基本
CController
(Yii的基本控制器)的自定义控制器中动态更改
Yii::app()->errorHandler->errorAction

到目前为止,我已经尝试过这样的方法:

<?php

class AdminController extends CController {

    public $layout = '//layouts/admin';

    public function init() {
        parent::init();
        Yii::app()->errorHandler->errorAction = '/admin/error';
    }

}
您应该尝试以下方法:

Yii::app()->setComponents(array(
    'errorHandler'=>array(
        'errorAction'=>'/admin/error'
    )
));

您知道如何将页面标题传递给errorAction吗?
Yii::app()->setComponents(array(
    'errorHandler'=>array(
        'errorAction'=>'/admin/error'
    )
));