Yii2:行为的模型规则继承
我不知道是否还有其他方法可以做到这一点: UserModel.phpYii2:行为的模型规则继承,yii2,yii2-model,Yii2,Yii2 Model,我不知道是否还有其他方法可以做到这一点: UserModel.php public function behaviors() { //I use array_merge() because UserModel extends from another custom model. return array_merge( parent::behaviors(), [
public function behaviors()
{
//I use array_merge() because UserModel extends from another custom model.
return
array_merge(
parent::behaviors(),
[
MyBehavior::className(),
]
);
}
public function rules()
{
return
array_merge(
MyBehavior::theRules(),
[
list of UserModel rules...
]
);
use yii\helpers\ArrayHelper;
public function behaviors()
{
//I use array_merge() because UserModel extends from another custom model.
return ArrayHelper::merge(
parent::behaviors(),
[
MyBehavior::className(),
]
);
}
public function rules()
{
return
[
list of UserModel rules...
]
;
}
MyBehavior.php
class MyBehavior extends Behavior
{
public static function theRules()
{
return [
[['attr'],'file']
];
}
....
}
use \yii\validators\Validator;
public function attach($owner){
parent::attach($owner);
$owner->validators[] = Validator::createValidator('file', $this->owner, '_anexo'
,['skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg', 'maxFiles' => 5, 'maxSize'=>2000000]
);
}
我的问题是:有没有其他方法可以将规则从MyBehavior继承到UserModel,而不用在UserModel::rules()上静态调用MyBehavior::theRules()
public function behaviors()
{
//I use array_merge() because UserModel extends from another custom model.
return
array_merge(
parent::behaviors(),
[
MyBehavior::className(),
]
);
}
public function rules()
{
return
array_merge(
MyBehavior::theRules(),
[
list of UserModel rules...
]
);
use yii\helpers\ArrayHelper;
public function behaviors()
{
//I use array_merge() because UserModel extends from another custom model.
return ArrayHelper::merge(
parent::behaviors(),
[
MyBehavior::className(),
]
);
}
public function rules()
{
return
[
list of UserModel rules...
]
;
}
摘自:
MyBehavior.php
class MyBehavior extends Behavior
{
public static function theRules()
{
return [
[['attr'],'file']
];
}
....
}
use \yii\validators\Validator;
public function attach($owner){
parent::attach($owner);
$owner->validators[] = Validator::createValidator('file', $this->owner, '_anexo'
,['skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg', 'maxFiles' => 5, 'maxSize'=>2000000]
);
}
您看过关于在中附加和使用行为的文档吗?是@igor,谢谢!