duration
フォームから送信された他のデータに応じて、空になることも空にならないこともあるフィールドがあります。だから私は CakePHP3 でカスタム検証をしようとしています。
私のテーブルで私がした
public function validationDefault(Validator $validator)
{
$validator
->add('duration', 'durationOk', [
'rule' => 'isDurationOk',
'message' => 'duration is not OK',
'provider' => 'table'
]);
return $validator;
}
public function isDurationOk($value, $context)
{
// do some logic
return false; // Always return false, just for test
}
期間フィールドの値を設定すると、'duration is not OK'
(予想どおり) エラーが発生します。しかし、値を空にすると'This field cannot be left empty'
エラーが発生します。
だから私は追加しました:
->allowEmpty('duration');
しかし、この場合、duration
が空の場合、エラーはまったく発生しません。
私は何か間違ったことをしていますか、それとも検証の仕組みを理解していないだけですか?