本文阅读大概需要 1 分钟
顾名思义,从命名上来看,给人的感觉是进行布尔类型判断的。
但其实我们可以用它来做一些更有意思的比较。
比较常规的用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public function actionSearch() { $model = new DynamicModel(['status']);
$model->addRule('status', 'boolean'); $model->status = 1; $model->validate();
$model->addRule('status', 'boolean', ['strict' => true]); $model->status = 1; $model->validate(); $model->status = '1'; $model->validate(); }
|
这里列举了两个验证场景:1是非严格比较, 2是严格比较。
在 BooleanValidator 中有两个属性分别代表比较的值,其默认为 trueValue = '1'
和 falseValue = '0'
,
在验证的时候 BooleanValidator 分别对对相应的属性值进行比较,当有一个「trueValue或falseValue」分别在严格比较和非严格比较的情况下和属性值相等时则验证通过。
由此,我们可以通过设置 trueValue 和 falseValue 来进行更多的比较,例如:
1 2 3 4 5 6 7 8 9 10
|
$model = new DynamicModel(['action']); $model->load(Yii::$app->getRequest()->post(), ''); $model->addRule('status', 'boolean', ['strict' => true, 'trueValue' => 'yes', 'falseValue' => 'no']); if ($model->validate()) { } else { }
|
如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的教程。