cakephp 3, как изменить сообщение проверки пользовательского правила в fly

Я создал пользовательское правило, и мне нужно изменить сообщение на лету.

Например, рассмотрим следующий код. В этом мне нужно показать соответствующее сообщение вместо сообщения правила (номер ошибки) на основе ограничений

public function validationDefault(Validator $validator)
{
           $validator->add(
                    'number_field',
                    [
                        'custom' => [
                            'rule' => function ($value, $context) {
                                if ($value < 10) {
                                    //need to change the error message as its less than 10
                                } else if ($value > 10 && $value <20) {
                                    //need change the error message its between 10 and 20
                                }
                                return true;
                            },
                            'message' => 'Error number'
                        ]
                    ]
                );
     return $validator;
}

person sethuraman    schedule 11.01.2018    source источник
comment
Я думаю, вы можете просто создать два разных правила для одного и того же поля с двумя разными сообщениями об ошибках.   -  person arilia    schedule 11.01.2018


Ответы (2)


Методы правила проверки могут возвращать либо логическое значение, определяющее успешность проверки, либо строку, означающую, что проверка не удалась, и что эта строка должна использоваться в качестве сообщения об ошибке вместо строки, определенной в параметре message.

'rule' => function ($value, $context) {
    if ($value < 10) {
        return __('Error message for value < 10');
    } else if ($value > 10 && $value <20) {
        return __('Error message for value between 10 and 20');
    }

    return true;
},

Смотрите также

person ndm    schedule 11.01.2018

   $validator
        ->add("number_field", "length", [
            "rule" => [ "minLength", 20],
            "message" =>__("{Your message}"),//Error message
            'on' => function ($context) {
                return !empty($context['data']['number_field']);
            }
        ])

При определении правил проверки вы можете использовать ключ on, чтобы указать, когда следует применять правило проверки.

person Boni    schedule 11.01.2018