【发布时间】:2015-03-26 15:23:23
【问题描述】:
我有一个模型,其中两个值必须是唯一的。 Yii2 对此有一个验证规则:
[['object_id', 'created_by'], 'unique', 'targetAttribute' => ['object_id', 'created_by']]
created_by 属性是由可指责的行为生成的:
public function behaviors()
{
return [
'blameable' => [
'class' => BlameableBehavior::className(),
'createdByAttribute' => 'created_by',
'updatedByAttribute' => 'updated_by',
],
];
}
验证是在行为输入存储到模型之前完成的。 (我知道这一点,因为如果规则中需要created_by,模型将不会保存 - 验证错误。)
有没有好的 yii2 方法来验证这样的行为生成属性?
【问题讨论】:
-
“不能要求”是指无法访问这些值吗?当然? Component::__get($name) 在行为中寻找属性。我希望它应该可以访问。你能提供一些代码(尤其是验证规则)吗?
-
通常我的意思是“不能要求”。如果你在规则中需要它,我不会保存。因此,在将行为输入添加到模型之前进行验证。
标签: yii2