2016-09-01 2 views
2

Im пытаясь выяснить, как быстро добавлять сообщения об ошибках на поле в Laravel 5. Вот что я получил:Laravel 5 - Как добавить пользовательские сообщения для проверки?

$validator = Validator::make($this->req->all(), [ 
'email_add' => 'required|email|max:100', 
'pass' => 'required|max:20', 
]); 

Так как я положил сообщение прямо здесь для каждого поля одобренного выше? например «Вы забыли адрес электронной почты» и «Пароль необходим»?

(Как это сделать без написания программы марсохода для одной простой задачи. Как обычно, в стиле laravel 5 вещи ремесленника делают что-то совершенно бесполезным, добавляют 2 пространства имен, 3 промежуточных элемента, 5 классов, 7 функций и затем, наконец, переопределяют ошибку сообщения !!)


[EDIT] После некоторых помощью ответов ниже и другого поиска по стеке, я нашел именно то, что должно быть сделано:

  1. Добавить сообщение для type торговых операций на каждое поле: $validator = Validator::make($this->req->all(), [ 'email_add' => 'required|email|max:100', 'pass' => 'required|max:20', ], [ 'email_add.required' => 'The Email Address is actually required dude!', 'email_add.email' => 'The Email Address is is not a valid Email Address!' ]); . .

  2. Чтобы просто изменить email_add в Email Address, т.е. Attribute Name вместо того, чтобы писать пользовательские сбщ для каждой проверки применяется на каждом поле: Validator::make(....)->setAttributeNames( [ 'email_add'=>'Email Address', 'pass'=>'Password' ]);


Спасибо за помощь Guyz.

+0

Убедитесь, что вы не можете найти ответ в Google или в стеке. это уже заданный вопрос, прежде чем вы спросите. но это необязательный код так же, как вы хотите. вам нужно сделать некоторые манипуляции с кодом. поэтому будьте осторожны в следующий раз. –

ответ

1

попробовать эту свою работу вы

$validator = Validator::make($this->req->all(), [ 
'email_add' => 'required|email|max:100', 
'pass' => 'required|max:20', 
]); 

$messages = [ 
    'email_add.required'  => 'You forgot Email Address', 
    'pass.required' => 'Password is Required', 

]; 
+0

Спасибо, человек действительно помогает. Поэтому должен быть прямой способ просто изменить имя поля/атрибута. Скажите email_add в «Адрес электронной почты». Просто измените название –

+0

welcome bro ... –

+0

Итак, как я могу просто изменить название поля вместо всего сообщения? –

0

Для этого добавьте свои сообщения в пользовательский массив в файле языков ресурсов/lang/xx/validation.php.

'custom' => [ 
    'email' => [ 
     'required' => 'We need to know your e-mail address!', 
    ], 
], 

https://laravel.com/docs/5.1/validation#custom-error-messages

+0

Посмотрите, что я имею в виду? !! всегда делайте что-нибудь в другом месте !! Leravel5 = Напишите каждую строку кода - это новый файл! –

0

, если вы хотите изменить сообщение проверки для конкретного запроса вы можете помещать сообщения метода в том же файле запроса, как это

public function messages() { 
    'name.required' => 'custom message', 
    'email.required' => 'custom message for email', 
    'email.email' => 'custom message form email format' 

Или, если вы хотите, чтобы сообщение проверки правильности ввода внутри контроллера просто передало третий параметр в виде сообщения.

Смежные вопросы