在我的 Yii2 项目中,我有相关的模型。示例:模型客户将具有与另一模型地址相关的属性 address_id 。在客户模型中,有现有验证器,用于检查地址表中是否存在该行。
通常,在创建或更新时,如果address = null
,则忽略此验证。我的问题是,有时FE会发送address = 0
来指示缺少地址。
在这种情况下,我不仅需要忽略验证,还需要设置address = null
。这当然可以之前保存,但是我正在尝试检查是否有一些内置方法可以实现此目的
答案 0 :(得分:2)
您可以使用the filter validator来标准化输入数据。例如:
class Customer extends ActiveRecord
{
public function rules()
{
return [
['address_id', 'filter', 'filter' => function ($value) {
return $value == 0 ? null : $value;
}],
// other validators
];
}
}