1

Users.phpモデルでbehavior(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 に答える