Conditional validation

Hi, in my Model I need a conditional validation. Now I use the following:

     $validator
      ->requirePresence('iban', 'create', 'update')
      ->notEmpty('iban')
      ->add('iban', [
      'length' => [
      'rule' => ['minlength', 22],
      'message' => 'Die IBAN muss 22 Zeichen lang sein!',
      ]]
      );

The iban needs to be 22 characters. But now I have add the condition:
Only if field ‘payer’ is set to 1, which is the field before iban.

I have tried this:
$validator->allowEmpty(‘iban’, function ($context) {
return $context[‘data’][‘payer’] === 0;
});

and receive an error: Undefinde index payer

How do I proceed?

in $context['data'] are only data you pass to validation i.e. when you do $this->patchEntity($user, $this->request->data) only $this->request->data is there. If you need to pass also original object data you can pass it as provider:

https://book.cakephp.org/3.0/en/core-libraries/validation.html#custom-validation-rules

See this: Conditional application rules

If you have not many statuses for player (0 or 1)
You can make it easy:
if ($this->request->data[‘ControllerName’]['player] != 1) {
$this->ControllerName->validator()->remove(‘validationRuleName’);
}