Yii2-如果忽略验证

时间:2018-12-25 10:09:15

标签: php yii2

在我的 Yii2 项目中,我有相关的模型。示例:模型客户将具有与另一模型地址相关的属性 address_id 。在客户模型中,有现有验证器,用于检查地址表中是否存在该行。

通常,在创建或更新时,如果address = null,则忽略此验证。我的问题是,有时FE会发送address = 0来指示缺少地址。

在这种情况下,我不仅需要忽略验证,还需要设置address = null。这当然可以之前保存,但是我正在尝试检查是否有一些内置方法可以实现此目的

1 个答案:

答案 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
      ];
    }
}