Пользовательские правила проверки Laravel

Я изучаю Framework Laravel и мне это очень нравится, однако у меня возникла небольшая проблема с «Валидатором». Мне нужно сделать пользовательское правило. Я искал документацию и на некоторых сайтах в Интернете, и мне удалось это сделать:

1º Я создал папку под названием "app/validators/"

2º Я создал файл под названием «CpfValidation.php» внутри этой папки с классом.

3º В файле "app/start/global.php" я включил строчку:

app_path (). '/ validators'

4 В моем контроллере я вставляю код:

Validator::extend('validaCpf', 'CpfValidation@validaCpf');

$validacao = Validator::make(

    array(
        'nome_completo' => Input::get('nome_completo'),
        'cpf'           => Input::get('cpf'),
        'email'         => Input::get('email'),
        'telefone'      => Input::get('telefone'),
        'logradouro'    => Input::get('logradouro'),
        'estado'        => Input::get('estado')
    ),

    array(
        'nome_completo' => 'required|min:2',
        'cpf'           => 'required|validaCpf',
        'email'         => 'required|email',
        'telefone'      => 'required|min:14',
        'logradouro'    => 'required',
        'estado'        => 'required'
    ),

    array(
        'nome_completo.required' => 'Você não informou o seu nome!',
        'nome_completo.min'      => 'O seu nome deve ter pelo menos 2 letras!',
        'cpf.required'           => 'Você não informou o seu CPF!',
        'cpf.validaCpf'          => 'O CPF informado não parece ser válido!',
        'email.required'         => 'Você não informou o seu e-mail!',
        'email.email'            => 'O e-mail informado não parece ser válido!',
        'telefone.required'      => 'Você não informou o seu telefone!',
        'telefone.min'           => 'O Telefone informado não parece ser válido!',
        'logradouro.required'    => 'Você não informou o seu endereço!',
        'estado.required'        => 'Você não informou o seu estado!'
    )

);

Однако при запуске все работает нормально, за исключением того, что, несмотря на работу validaCpf, не отображает сообщение, которое я хотел. Он отображает только: «validation.valida_cpf» вместо «O CPF informado não parece ser válido!»


person Paulo Reis    schedule 27.06.2014    source источник
comment
validaCpf не то же самое, что validaCPF. Попробуйте использовать один и тот же кожух в обоих местах.   -  person rmobis    schedule 27.06.2014
comment
Спасибо, но, к сожалению, это не сработало, я отредактировал свой код, но все равно то же самое.   -  person Paulo Reis    schedule 27.06.2014
comment
Где CpfValidation@validaCpf? Напишите код и в чем ошибка?   -  person The Alpha    schedule 27.06.2014
comment
CpfValidation — это класс, а validaCpf — метод этого класса. Этот класс находится в app/validators/CpfValidation.php, он работает нормально, но не показывает сообщение. Я попробовал метод отправки действительных и недействительных данных. Когда я отправляю действительные данные, сообщение об ошибке не отображается, но когда я отправляю недопустимые данные, отображается validation.valida_cpf. Я считаю, что ошибка не в классе, потому что я использовал этот класс в другом приложении в другом контексте и работал нормально.   -  person Paulo Reis    schedule 27.06.2014


Ответы (1)


Вы можете переопределить функцию сообщений, чтобы применить собственное содержимое сообщения. Например, проверьте это:

public function messages()
{
    return [
        'title.required' => 'A title is required',
        'body.required' => 'A message is required',
    ];
}

Вы можете найти его в официальной документации Laravel5.1 документация Laravel проверьте этот абзац Настройка Сообщения об ошибках

person Community    schedule 19.05.2016