0

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

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

4

1 回答 1

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',
        ),      
    );
}
}
于 2013-03-29T10:38:21.670 回答