Laravel, validation sınıfını kullanırken varsayılan mesajlar haricinde özel mesajlar kullanmana da izin verir.
Örneğin yazdığın kurala özel mesaj tanımlaması yaptım;
$rules = array(
'username' => 'required|min:2|unique:users,username',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:6',
'city' => 'required',
);
$messages = array(
'username.required' => 'Kullanıcı adı belirtmelisiniz',
'username.min' => 'Seçtiğiniz kullanıcı adı minimum 2 karakter olmalıdır.',
'username.unique' => 'Seçtiğiniz kullanıcı adı başka bir kullanıcı tarafından kaydedilmiş, eğer size aitse ve şifrenizi unuttuysanız <a href="">buradan</a> yeni bir şifre alabilirsiniz',
'email.required' => 'E-Posta adresinizi yazmalısınız',
'email.email' => 'Belirttiğiniz e-posta adresi geçerli değil, lütfen yazım hatalarını kontrol ediniz.',
'email.unique' => 'Seçtiğiniz e-posta adı başka bir hesaba bağlanmış durumda, eğer hesap sizinse ve şifrenizi unuttuysanız <a href="">buradan</a> yeni bir şifre alabilirsiniz',
'password.required' => 'Şifre belirtmelisiniz.',
'password.min' => 'Şifreniz minimum 6 karakterden oluşmalıdır.',
'city.required' => 'Lütfen yaşadığınız şehir\'i belirtiniz.',
);
bu mesaj tanımlamalarını yaptıktan sonra Validator kullanımına mesajları da dahil ediyoruz;
$validation = Validator::make( Input::all(), $rules, $messages);
if($validation->fails()) {
return Redirect::back()->withInput()->withErrors($validation);
}
bundan sonra ki hata mesajların da sizin $messages arrayınız dikkate alınacak. Eğer mesajlarda bazı kurallar için mesaj eklemezseniz o zaman varsayılan mesaj geri döndürülür,
şöyle ki siz username için required min ve unique kuralı koymuşsanız, form_alani_adi[nokta]kural şeklinde mesaj belirtmelisiniz. bkz:
http://dokuman.laravel.gen.tr/docs/validation#custom-error-messages
biz sadece
username.required ve
username.min kuralları için mesaj koysaydık,
username.unique hata mesajı için ise
validator sınıfının varsayılan mesajı dönecekti.
Diğer sorularının cevabı zaten return Redireck::back()->withInput içinde var. view i açar ve kullanıcının dolduğurduğu 5 inputtan 4 ünü laravel senin yerine doldudur.
Not: Eksik ve yanlışlarım için kusura bakmayın.