设置静态模型CModel的属性

时间:2012-12-12 16:33:24

标签: php static yii yii-cmodel

我正在修改依赖于CActiveRecord的现有功能代码。我现在正在连接到sybase,它没有架构驱动程序,所以我用CModel而不是CActiveRecord重写。我的问题可能是我不理解这个一般的OOP概念?

原文:MyModelController.php

MyModel::model()->scenario='case1';

引用::model()不再有效...因为我认为此方法仅在基类为CActiveRecord时有效。

/**
 * Returns the static model of the specified AR class.
 * @param string $className active record class name.
 * @return ClientProg the static model class
 */
public static function model($className=__CLASS__)
{
    return parent::model($className);
}

如何设置MyModel的scenario属性,因为它基于CModel,与基类为CActiveRecord时的方式相同?

1 个答案:

答案 0 :(得分:0)

当你调用model()时,它是第一次为你创建一个实例,然后引用这个缓存的对象。

如果您的方法是静态的,那么不依赖于实例化版本的属性,您将会在以后遇到麻烦。

检查静态属性是否满足您的需求,或将场景作为参数传递给静态调用。

无论如何,static its evil,如果可以,请避免使用。