--Core validator 如 required 同时支持客户端验证和服务端验证;Inline validator 如 validname 不支持客户端验证。
validname validator 必须提交表单后才能触发验证。
--自定义函数验证Only For Server validator,如果没有required,需要加'skipOnEmpty' => false, or 'skipEmpty' => false?
--when Only For Server validator
[
['username', 'required', 'when' => function($model, $attribute) {
return $model->username== 'MIKE';
}],
]
/**
* @param Model $model 要验证的模型对象
* @param string $attribute 待测特性名
* @return boolean 返回是否启用该规则
*/
function ($model, $attribute)
validname validator 必须提交表单后才能触发验证。
--自定义函数验证Only For Server validator,如果没有required,需要加'skipOnEmpty' => false, or 'skipEmpty' => false?
--when Only For Server validator
[
['username', 'required', 'when' => function($model, $attribute) {
return $model->username== 'MIKE';
}],
]
/**
* @param Model $model 要验证的模型对象
* @param string $attribute 待测特性名
* @return boolean 返回是否启用该规则
*/
function ($model, $attribute)
--whenClient 验证
[
['username', 'required', 'when' => function ($model) {
return $model->username== 'MIKE';
}, 'whenClient' => "function (attribute, value) {
return $('#username).value == MIKE;
}"],
]
simple eg:
['username', 'required',
'when' => function ($model) {
return false;
},
'when' => function ($model) {
return false;
},
'whenClient' => "function(attribute, value) {
return false;
}"
],
return false;
}"
],
本文详细介绍了在Yii2框架下如何实现条件验证,通过示例代码展示如何根据特定条件决定字段是否必填,以及如何自定义复杂的验证规则,确保数据在入库前的准确性和完整性。
1932

被折叠的 条评论
为什么被折叠?



