Пользовательские сообщения проверки Laravel

Пользовательские сообщения проверки Laravel

10.07.2017 12:06:04 Просмотров 49 Источник

Я пытаюсь создать настраиваемые сообщения для проверки в Laravel 5. Вот что я пробовал до сих пор:

$messages = [
    'required'  => 'Harap bagian :attribute di isi.',
    'unique'    => ':attribute sudah digunakan',
];
$validator = Validator::make($request->all(), [
    'username' => array('required','unique:Userlogin,username'),
    'password' => 'required',
    'email'    => array('required','unique:Userlogin,email'),$messages
]);

if ($validator->fails()) { 
    return redirect('/')
        ->withErrors($validator) // send back all errors to the login form
        ->withInput();
} else {
    return redirect('/')
        ->with('status', 'Kami sudah mengirimkan email, silahkan di konfirmasi');   
}   

Но это не работает. Сообщение по-прежнему совпадает с сообщением по умолчанию. Как я могу исправить это, чтобы я мог использовать свои пользовательские сообщения?

У вопроса есть решение - Посмотреть?

Ответы - Пользовательские сообщения проверки Laravel / Custom Laravel validation messages

Jigar Shah

10.07.2017 12:10:09

Вы можете предоставить пользовательское сообщение, например :

$rules = array(
            'URL' => 'required|url'
        );    
$messages = array(
                'URL.required' => 'URL is required.'
            );
$validator = Validator::make( $request->all(), $rules, $messages );

if ( $validator->fails() ) 
{
    return [
        'success' => 0, 
        'message' => $validator->errors()->first()
    ];
}

или

Как вы пытались, вы пропустили Validator::replacer(), чтобы заменить переменную :variable

Validator::replacer('custom_validation_rule', function($message, $attribute, $rule, $parameters){
    return str_replace(':foo', $parameters[0], $message);
});

Вы можете прочитать больше здесь и заменитель отсюда

https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/45007996#comment76990367_45007996
любой пример, как его использовать ?
https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/45007996#comment76990964_45007996
добавлен пример для первого метода.
Является ответом!
Zaheer Attar

10.07.2017 12:44:19

Если вы используете $this->validate()simplest one, то вы должны написать код примерно так..

$rules = [
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required|max:250',
    ];

    $customMessages = [
        'required' => 'The :attribute field is required.'
    ];

    $this->validate($request, $rules, $customMessages);
https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/45008729#comment103860996_45008729
Чем я должен заполнить $ request var?
Geo4you

01.12.2018 08:47:02

Ларавель 5.7.*

Также вы можете попробовать что-то вроде этого. Для меня это самый простой способ сделать пользовательские сообщения в методах, когда вы хотите проверить запросы:

public function store()
{
    request()->validate([
        'file' => 'required',
        'type' => 'required'
    ],
    [
        'file.required' => 'You have to choose the file!',
        'type.required' => 'You have to choose type of the file!'
    ]);
}
https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/53573460#comment96536217_53573460
Это было проще всего для меня, поскольку я был ограничен во времени и должен был сделать это только в одном месте. Это довольно удобно, но если вам понадобятся пользовательские сообщения в нескольких местах, было бы более разумно иметь их все в одном месте. Это упрощает отслеживание и делает код более разборчивым, чем при наличии пользовательских сообщений в каждом операторе проверки. Я поддержал ваш ответ из-за моего уникального usecase, и я хочу сказать спасибо за это (хотя, так советует против благодарности и меня тоже сообщения, Вы должны знать, что вы помогли мне выйти из переплета, и я доставил вовремя).
https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/53573460#comment96643544_53573460
Большое вам спасибо @Mexen я рад, что смог помочь!
https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/53573460#comment99800028_53573460
@Geo4you большое спасибо, это действительно помогло мне.
pgrono

16.11.2019 06:35:46

$ruls = [
  'username' => 'required,unique:Userlogin,username',
  'password' => 'required',
  'email' => 'required,unique:Userlogin,email'
]);

$messages = [
  'required'  => 'Harap bagian :attribute di isi.',
  'unique'    => ':attribute sudah digunakan'
];

$request->validate($ruls,$messages);
//only if validation success code below will be executed
https://stackoverflow.com/questions/45007905/custom-laravel-validation-messages/58892337#comment104051646_58892337
Это то же самое, что и предыдущий ответ , опубликованный год назад.
Закрыть X