1

我在 Users.php 模型中使用行为(DateTimeI18NBehavior),但特别是在控制器(ApiController.php)中,我想禁用它。


模型 - Users.php:

public function behaviors()
{
    return array(
        'datetimeI18NBehavior'=>array(
            'class' => 'ext.DateTimeI18NBehavior',
        ),
    );
}

我知道我可以通过以下方式禁用它:

$model->disableBehavior('datetimeI18NBehavior');

但是如何禁用整个控制器?

4

1 回答 1

5

不确定,但也许这会起作用:

class ApiController extends CController
{
    function init()
    {
        Users::model()->disableBehavior('datetimeI18NBehavior');
    }
}

或者您可以尝试在模型中添加一些逻辑:

function behaviors()
{
    if (Yii::app()->controller->uniqueId != 'api') {
        return parent::behaviors();
    }
    return array(
        'datetimeI18NBehavior'=>array(
            'class' => 'ext.DateTimeI18NBehavior',
        ),
    );
}

在我看来,这两种方式都不完美。

于 2012-12-21T21:10:36.000 回答