要验证不受任何模型约束的值, 我们需要使用临时验证。或者, 如果你想在没有模型的情况下验证值, 请使用临时验证。
要执行一种类型的验证, 你可以调用所需验证器的yii \ validators \ validator()方法。
并非所有的审核员都支持这种类型的验证。
例如, 我们正在调用yii \ validators \ DateValidator()
$date = '24th November 2016, Thursday';
$validator = new yii\validators\DateValidator();
if ($validator->validate($date, $error)) {
echo 'Date is valid.';
} else {
echo $error;
}
但是要执行多个验证, 可以针对几个值使用yii \ base \ DynamicModel来定义属性和规则。
例如, 在这里我们调用DynamicModel来验证日期和电子邮件。
public function actionAdHocValidation() {
$model = DynamicModel::validateData([
'date' => '24th November 2016, Thursday', 'email' => 'abc@gmail.com'
], [
[['date', 'email'], 'string', 'max' => 40], ]);
if ($model->hasErrors()) {
var_dump($model->errors);
} else {
echo "success";
}
}
在浏览器上, 传递URL
http://localhost/ad_hoc/frontend/web/index.php?r = site / ad-hoc-validation
查看上面的输出, 同时验证了日期和电子邮件。