在 Yii 的 config.php 中,我们有这样一条语句,它声明了哪个 Controller 是应用程序中的默认且唯一的一个 Error-Handler:
'errorHandler' => array(
'errorAction' => 'site/error',
),
所以,我需要actionError()
在我的SiteController下有一个,以便在我的站点中预览错误,但这不是我真正需要的。
我正在尝试在扩展基础的自定义控制器(Yii 的基础控制器)Yii::app()->errorHandler->errorAction
中即时更改。CController
到目前为止,我已经尝试过这样的事情:
<?php
class AdminController extends CController {
public $layout = '//layouts/admin';
public function init() {
parent::init();
Yii::app()->errorHandler->errorAction = '/admin/error';
}
}
但没有结果,也没有希望。请注意,我也有此 URL 配置:
'/admin' => '/admin/home',
'/admin/<controller:\w+>' => '/admin/<controller>',
'/admin/<controller:\w+>/<action:\w+>/<id:\d+>' => '/admin/<controller>/<action>',
'/admin/<controller:\w+>/<action:\w+>' => '/admin/<controller>/<action>',
这意味着我有一个名为admin的整个Controllers-Views组,它们存储在以下目录中:
- 受保护/控制器/管理员
- 受保护/视图/管理员
因此,按照这种逻辑,我在两个:admin和控制器 root中都有ErrorController,并且在views directory中具有相同的结构。
这就是我所尝试的,我非常感谢帮助,所以提前谢谢大家!