Laravel 5.3 custom error messages

teroristd

Registered
Здравейте, използвах командата php artisan make:auth за да създам register/login система. Интересува ме как и от къде да преправя съобщенията за грешки? Става въпрос за грешки от типа на "The password must be at least 6 characters." и други подобни.
 
Това става само ако ползваш вградения валидатор. Лесно е, виж само общият вид на валидатора.
Код:
$validator = Validator::make($data, $rules, $messages);

Пример:

PHP:
$v= Validator::make(request()->all(),  [
   'names' => 'required|min:5',
   'email' => 'required|email',
   'pasword' => 'required',
], 

[

   'names.min'=>"Името трябва дае :min символи",
   'pasword.required'=>"Паролата е задължителна !",
   'email.required'=>"Имейла е задължителен !",
   'email.email'=>"Имейла трябва да е валиден !",
]);

if($v->fails())
{
    return redirect()->back()->->withErrors($v)
                        ->withInput();
 }
:idea: :?:



Едит: може да преглеждаш документацията от време на време хах :D https://laravel.com/docs/5.3/validation#manually-creating-validators :?:

Едит2: може и напрво във view-то да проверяваш ключа на ерора и да си пишеш на място грешките, но е доста дървено така :) Просто казвам да се знае, че има и друг вариант :)
 
Ще се повторя, но използвах командата php artisan make:auth. Тя автоматично създава цялата логин/регистър система. Аз не съм писал нищо никъде. Къде се намират тези файлове, които отговарят за грешките? Документацията я гледах преди да пусна темата, но не видях нищо което да отговаря на въпроса ми.
 
В контролера.
A HomeController will also be generated to handle post-login requests to your application's dashboard.
Потърси за RegisterController, там трябва да провериш дали го има валидатора, защото може да е изнесен като отделен клас/функция или там като middleware :)

Мисля, че беше: Illuminate\Auth\Middleware\Authenticate в App->http->middlaware :)
 
joTunkiq каза:
В контролера.
A HomeController will also be generated to handle post-login requests to your application's dashboard.
Потърси за RegisterController, там трябва да провериш дали го има валидатора, защото може да е изнесен като отделен клас/функция или там като middleware :)

Мисля, че беше: Illuminate\Auth\Middleware\Authenticate в App->http->middlaware :)

Така, намерих RegisterController и вътре функция validator(). Сега ако съм те разбрал правилно трябва да добавя масив, като примерно в 'names.min' names е името на полето, а min е типът на грешката. Така ли е?
 
дам , съответно, ако искаш да сложиш друго съобщение - например, names да е задължително:

PHP:
names.required => 'Името да е задължително'
И така. Ако не се лъжа май имаше и специален файл за логването, а този е за регистрацията. Но може и да се лъжа. Не ползвам тея автоматични генератори за вход. Обичам аз да си ги създавам, за да изпипам детайлите :) :?:
 
Благодаря колега имаш +1 от мен. С регистрацията се получи, но си прав че при логина е на друго място. Не е в логин контролера. Чудя се дали ако добавя валидатор там ще се получи. Преди да ти дам точката ще те попитам, ако знаеш къде мога да видя списък с всички правила, които поддържа този валидатор, и в случай че искам да напиша мое си правило как може да стане?
 
Хах странно, няма ги в документацията на новите 2-3 версии, намирих чак в 4.2. Тук са описани, може да ги видиш, те са същите :)

https://laravel.com/docs/4.2/validation#available-validation-rules :idea: :?:
 
Благодаря а за другия въпрос имаш ли представа. Ако реша да си напиша собствен регулярен израз къде да го добавя, като правило?
 
https://laracasts.com/discuss/channels/general-discussion/l5-where-to-add-custom-validation-function

https://laracasts.com/discuss/channels/general-discussion/validator-custom-rule-laravel-5

http://stackoverflow.com/questions/28793716/how-add-custom-validation-rules-when-using-form-request-validation-in-laravel-5

:?:
 
Ако ти се повтарят тия rules и не искаш всеки път да дефинираш текста, в resources/lang/ има файлове, предназначени за това.

С регистрацията се получи, но си прав че при логина е на друго място. Не е в логин контролера.

В AuthController-a ти има едни редове, в които в тоя клас се извикват traits. AuthenticateUsers има функционалноста за логването ти. Само да добавя, че ако искаш да промениш нещо, не трябва да едитваш файла в vendor папката.

Вместо това направо си направи нов метод в AuthController-a с името на този метод, който искаш да override-неш. :)
 

Back
Горе