Yii2 行为创建属性的验证规则
我有一个具有两个值的模型,这两个值必须是唯一的。 Yii2对此有一个验证规则:Yii2 行为创建属性的验证规则,yii2,Yii2,我有一个具有两个值的模型,这两个值必须是唯一的。 Yii2对此有一个验证规则: [['object_id', 'created_by'], 'unique', 'targetAttribute' => ['object_id', 'created_by']] 由创建的属性是以可指责的行为生成的: public function behaviors() { return [ 'blameable' => [ 'class' =>
[['object_id', 'created_by'], 'unique', 'targetAttribute' => ['object_id', 'created_by']]
由创建的属性是以可指责的行为生成的:
public function behaviors()
{
return [
'blameable' => [
'class' => BlameableBehavior::className(),
'createdByAttribute' => 'created_by',
'updatedByAttribute' => 'updated_by',
],
];
}
验证在行为输入存储到模型中之前完成。(我知道这一点,因为如果规则中需要由
创建的,那么模型将不会保存-验证错误。)
是否有一种很好的Yi2方法来验证这样的行为生成属性?您可以使用行为的“attributes”属性指定将在其上创建属性的事件,这样您就可以像这样修改模型:
public function behaviors()
{
return [
'blameable' => [
'class' => BlameableBehavior::className(),
'createdByAttribute' => 'created_by',
'updatedByAttribute' => 'updated_by',
'attributes' => [
ActiveRecord::EVENT_BEFORE_VALIDATE => ['updated_by', 'created_by']
]
],
];
}
“不能是必需的”是指无法访问这些值?当然组件::_get($name)在行为中查找属性。我希望它应该是可访问的。你能提供一些代码(特别是验证规则)吗?我的意思是“不能是必需的”。如果你在规则中要求它,我不会保存。因此,在将行为输入添加到模型之前进行验证。