Login kontrole, custom_verify isimli ekstra bir alan ekledim. custom_verify alanı x ise login başarılı olacak, diğer durumlar için başarısız olacak. SS’deki gibi yaptım ve çalışıyor. Eğer user/pass doğru ama bu alandan dolayı login başarısız olduğunda özelleştirilmiş bir mesaj vermek istiyorum. “custom_verify alanınız x değil” şeklinde. böyle bir geliştirme mümkün mü? laravel version 7.6.2
Merhaba, Laravel kendi kullanıcı kayıt işlemleri için app/Http/Controllers/Auth/RegisterController.php
dosyasını kullanıyor. Zaten HTML formun içine ilgili alanı eklediğinizi varsayıyorum. Bu alanın kontrolü için de RegisterController.php
dosyasındaki validator()
metodunu kullanabilirsiniz.
Validation için in:boyleolsun
şartını kullanabilirsiniz. Detaylı örneği:
https://laravel.com/docs/7.x/validation#rule-in
Özel bir hata mesajı belirtmek için yine belgenin ilgili kısmı:
https://laravel.com/docs/7.x/validation#custom-error-messages
Belgede Laravel’in kendi Register controllerındaki validationa dair detaylar da bu sayfada açıklanmış:
https://laravel.com/docs/7.x/authentication#included-authenticating
Haliyle, yeni_alan
isimli bir alanı HTML (ya da herhangi bir istemciden) POST edilirken eklendiğini ve Validation sürecine dahil etmek istediğinizi düşünürsek.
RegisterController.php
dosyasının validator()
metodu şöyle güncellenebilir;
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'yeni_alan' => ['required', 'string', 'in:tam_boyle_olsun']
]);
}
Not: soruda belirtilen Laravel sürümü 7.x olduğu için belge bağlantılarını 7.x üzerinden verdim. Bu yanıttan faydalananlar kendi Laravel sürümünün belgesi üzerinden aynı alanları incelemeli, yeni sürümlerde farklılıklar bulunabilir