我想验证validationDefault()函数中的某些字段并非全部因为条件但未找到任何解决方案。
示例:
public function validationDefault(Validator $validator) {
$validator
->requirePresence('title', 'create')
->notEmpty('title');
$validator
->requirePresence('inquiry')
->allowEmpty('inquiry');
$validator
->requirePresence('dosage')
->allowEmpty('dosage');
$validator
->requirePresence('dosage_occurance')
->integer('dosage_occurance')
->allowEmpty('dosage_occurance');
return $validator;
}
注意:来自两个不同形式的响应首先包含(标题和查询)其他包含(标题,剂量和剂量)。 我想从validationDefault()验证它,但它给我错误
"dosage_occurance": {
"_required": "This field is required"
}
当我没有发送正确的dose_occurance但是根据条件它是错误的。 在创建新实体时使用fieldList,但它无效。
由于
答案 0 :(得分:1)
您需要条件验证。
取自文件:
定义验证规则时,您可以使用on键来定义何时应用验证规则。如果未定义,则始终应用规则。其他有效值是创建和更新。使用其中一个值将使规则仅适用于创建或更新操作。
Read the whole documentation page.
从那里取得的例子,注意on
部分。
$validator->add('picture', 'file', [
'rule' => ['mimeType', ['image/jpeg', 'image/png']],
'on' => function ($context) {
return !empty($context['data']['show_profile_picture']);
}
]);