代码之家  ›  专栏  ›  技术社区  ›  mrateb

yii2-忽略属性if

  •  1
  • mrateb  · 技术社区  · 6 年前

    在我的 依依2号 项目,我有相关的模型。示例:模型 顾客 会有一个属性 地址地址 与另一个模型有关 地址 . 在 顾客 模型具有 存在验证器 检查地址表中是否存在该行。

    通常,在创建或更新时,如果 address = null . 我的问题是,有时FE会发送 address = 0 表示没有地址。

    在这种情况下,我不仅需要忽略验证,还需要设置 地址=空 . 这可以做到 前身 当然,但我想检查一下是否有一些内置的方法可以让我做到这一点

    1 回复  |  直到 6 年前
        1
  •  2
  •   Maksym Fedorov    6 年前

    你可以使用 the filter validator 用于输入数据的规范化。例如:

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