gpt4 book ai didi

php - 如何即时更改 Yii 错误处理程序?

转载 作者:搜寻专家 更新时间:2023-10-31 21:12:29 25 4
gpt4 key购买 nike

在 Yii 的 config.php 中,我们有这样的声明,声明哪个 Controller 是应用程序中默认的和唯一的错误处理程序:

'errorHandler' => array(
'errorAction' => 'site/error',
),

因此,我需要在我的 SiteController 下有一个 actionError(),以便在我的站点中预览错误,但这不是我真正需要的。

我正在尝试动态更改 Yii::app()->errorHandler->errorAction,贯穿我扩展基础 CController 的自定义 Controller ( Yii 的基础 Controller )。

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

<?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 组,它们存储在以下目录中:

  • protected / Controller /管理员
  • protected / View /管理

所以按照这个逻辑,我在admincontrollers root 中都有ErrorController,并且在 中有相同的结构查看目录

这就是我尝试过的方法,非常感谢您的帮助,在此先感谢大家!

最佳答案

你应该试试这个:

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

http://www.yiiframework.com/doc/api/1.1/CModule#setComponents-detail

关于php - 如何即时更改 Yii 错误处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com