我在 Users.php 模型中使用行为(DateTimeI18NBehavior),但特别是在控制器(ApiController.php)中我想禁用它。
模型 - Users.php:
public function behaviors()
{
return array(
'datetimeI18NBehavior'=>array(
'class' => 'ext.DateTimeI18NBehavior',
),
);
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过以下方式禁用它:
$model->disableBehavior('datetimeI18NBehavior');
Run Code Online (Sandbox Code Playgroud)
但是如何禁用整个控制器?
不确定,但也许这会奏效:
class ApiController extends CController
{
function init()
{
Users::model()->disableBehavior('datetimeI18NBehavior');
}
}
Run Code Online (Sandbox Code Playgroud)
或者您可以尝试在模型中添加一些逻辑:
function behaviors()
{
if (Yii::app()->controller->uniqueId != 'api') {
return parent::behaviors();
}
return array(
'datetimeI18NBehavior'=>array(
'class' => 'ext.DateTimeI18NBehavior',
),
);
}
Run Code Online (Sandbox Code Playgroud)
尽管在我看来,这两种方式都不完美。
| 归档时间: |
|
| 查看次数: |
1481 次 |
| 最近记录: |