【问题标题】:Yii2 - Ignore validation ifYii2 - 忽略验证如果
【发布时间】:2018-12-25 10:09:14
【问题描述】:

在我的 Yii2 项目中,我有相关的模型。示例:模型 Customer 将具有与另一个模型 Address 相关的属性 address_id。在 Customer 模型中有 exist 验证器 来检查地址表中是否存在该行。

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

在这种情况下,我不仅需要忽略验证,还需要设置address = null。这当然可以在 beforeSave 之前完成,但我正在尝试检查是否有一些内置方法可以做到这一点

【问题讨论】:

    标签: php yii2


    【解决方案1】:

    您可以使用the filter validator 对输入数据进行规范化。例如:

    class Customer extends ActiveRecord
    {
        public function rules()
        {
          return [
              ['address_id', 'filter', 'filter' => function ($value) {
                  return $value == 0 ? null : $value;
              }],
              // other validators
          ];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 2011-11-16
      相关资源
      最近更新 更多