php - Codeigniter 4 validation error callback_check_password is not working
one text
Solution:
It appears that the ability to conveniently list callback functions by name in rules has been removed in CI4. This was possible in CI3 by adding the callback_ prefix to the name of the function and just listing it along with any rules in the pipe delimited list of rules in a rule string. The CI3 docs are very proud of this feature. The CI4 docs are oblivious to the fact this convenience seems to have been removed.
I think what you need to do in CI4 is to either create a full blown rule class and get the autoloader to find it as described in the docs, which is silly for a one-shot rule, or to use a closure.
I vote for the closure rule to almost get back to the convenience of the old 'prefixed function name' method. You can do it like this
$my_rule_list = [
'my_field' => [fn ($value) => $this->my_callback_function($value)]
];
$my_error_messages = [
'my_field' => [0 => 'The callback validator returned false.']
];
You have to use the array method of listing the closure rule rather than the pipe separated string 'rule1|rule2|rule3...' because, of course, that was the CI3 way of listing a callback. That way doesn't seem to be supported any more.
Source