Laravel, form verilerinin doğrulanmasını kolaylaştıran güçlü ve esnek bir doğrulama sistemine sahiptir. Ancak, bazen URL parametrelerini veya “route” parametrelerini doğrulamanız gerekebilir. Laravel, FormRequest sınıfları ile bu tür senaryoları kolaylıkla işleyebilir.
FormRequest Sınıflarının Kullanılması
Laravel’de HTTP requestlerinin doğrulanması genellikle bir FormRequest sınıfı ile yapılır. Bu, tüm doğrulama kurallarını ve yetkilendirme mantığını tek bir yerde toplamanıza izin verir.
Bir FormRequest sınıfı oluşturmak için Laravel’in artisan komutunu kullanabilirsiniz:
php artisan make:request VerifyUserRequest
Bu komut, app/Http/Requests/VerifyUserRequest.php
adlı yeni bir dosya oluşturur. Bu dosyada iki ana metod bulunur: authorize
ve rules
.
authorize
metodunda, isteği yapan kullanıcının bu isteği yapma yetkisi olup olmadığı kontrol edilir.rules
metodunda, request verilerinin karşılaması gereken doğrulama kuralları belirlenir.
URL Parametrelerini Doğrulama
Eğer bir URL şu şekildeyse: https://example.com/verify/{id}/{hash}
, ve istemcinin bu endpoint’e id
ve hash
parametrelerini sağlaması gerekiyorsa, bu parametreleri FormRequest sınıfı ile doğrulayabiliriz.
Öncelikle, route tanımımızı belirtelim:
Route::get('/verify/{id}/{hash}', 'VerificationController@verify')->name('verify')->where('id', '[0-9]+');
Ardından, VerifyUserRequest sınıfımızda rules
metodunu aşağıdaki gibi tanımlayabiliriz:
public function rules()
{
return [
'id' => 'required|integer|exists:users,id',
'hash' => 'required|string',
];
}
Bununla birlikte, Laravel bu parametreleri doğrulayabilmek için URL’den gelen parametrelerin ve request verilerinin birleşimini kullanmalıdır. Laravel, varsayılan olarak yalnızca request verilerini doğrular. Bu nedenle, URL’den gelen parametrelerin doğrulanmasını sağlamak için, validationData
metodunu FormRequest
sınıfımıza eklemeliyiz:
public function validationData()
{
return array_merge($this->route()->parameters(), $this->all());
}
Bu metod, route parametrelerini ve request verilerini birleştirir. Artık Laravel, id
ve hash
parametrelerini URL’den çeker ve belirlediğimiz doğrulama kurallarını uygular. Sonuç olarak, FormRequest sınıfı, route parametrelerini doğrulama ihtiyacımız olduğunda da oldukça kullanışlıdır. Doğru şekilde kullanıldığında, form verilerini ve URL parametrelerini doğrulama işlemlerimizi tek bir yerde organize edebiliriz.
Umuyorum ki bu rehber, Laravel ile URL parametrelerini nasıl doğrulayacağınıza dair size yardımcı olmuştur.