YII2存在带过滤器的验证器

时间:2017-03-06 14:21:50

标签: validation yii2 exists

我的模型规则如下所示

 public function rules()
{
    return [
        ['default', 'boolean'],
        ['default', 'exist', 'targetAttribute' => 'default', 'filter' => ['default' => 1], 'message' => 'Cock'],
        ['length', 'integer'],
        ['length', 'unique'],
    ];
}

我试图确保只有一条记录可以拥有模型属性'默认'设为' true'。它们都可能是假的,但如果有意义的话,不能超过一个。

我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

[类yii \ validators \ ExistValidator] [1]

     public function rules()
{
    return [
        ['default', 'boolean'],
        ['default', 'exist', 'targetClass' => '\common\models\Where?SearchModel', 'targetAttribute' => 'default', 'filter' => ['default' => 1], 'message' => 'Cock'],
        ['length', 'integer'],
        ['length', 'unique'],
    ];
}

如果ExistValidator无法提供帮助,您可以尝试声明。

if (Model::find()->where((['default' => $model->default)->existes()){

}