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