Yii:2个模型与beforeValidate具有相同的代码

时间:2013-03-29 08:42:58

标签: php yii content-management-system yii-cmodel

我有一个Yii应用程序,在2个模型中,我有beforeValidation方法的代码。

yii是否有解决方案,或者我应该创建一个组件并使用这个公共代码的参数?

1 个答案:

答案 0 :(得分:3)

您可以创建一个模型扩展的类:

class CommonClass extends CActiveRecord
{

    public function beforeValidate(){
       ...
    }

}

class A extends CommonClass{
}

class B extends CommonClass{
}

或者您可以定义行为并将此行为添加到您的两个模型中!

class YourBehavior extends CActiveRecordBehavior
{
    public function beforeValidate($event)
    {
        ...
    }
}

class A extends CActiveRecord{
    public function behaviors(){
    return array(
        'YourBehavior' => array(
            'class' => 'components.YourBehavior',
        ),      
    );
}
}

class B extends CActiveRecord{
    public function behaviors(){
    return array(
        'YourBehavior' => array(
            'class' => 'components.YourBehavior',
        ),      
    );
}
}