1
我有一个Yii应用程序,并且在两个模型中,我拥有beforeValidation方法的代码。Yii:具有相同代码的两个模型用于beforeValidate
yii是否有解决方案,或者我应该创建一个组件并使用这个公共代码的参数?
我有一个Yii应用程序,并且在两个模型中,我拥有beforeValidation方法的代码。Yii:具有相同代码的两个模型用于beforeValidate
yii是否有解决方案,或者我应该创建一个组件并使用这个公共代码的参数?
你可以创造出两个模型的扩展类:
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',
),
);
}
}
这就是我当时也想,但是我觉得Yii有这种情况 –
哼了预置的解决方案,我所知道的关于Yii的这些都是我所知道的唯一的解决办法。但是声明一个行为非常简单,我不知道什么“预先构建的解决方案”比你想象的更容易! – darkheir
韦尔,我只是想知道,这没什么特别的,它的正常环境与类 –