Laravel Route Constraint

Yasin DALKILIÇ
1 min readMar 8, 2021

--

Laravel Route Constraint

Herkese merhabalar bu yazımızda sizlerle beraber , laravel ile beraber route constraintleri kullanmaya çalışacağız. Peki nedir bu route constraint ?

Route constraint aslında ismindende anlaşıldığı gibi ilgili route ait tanımlamış olduğumuz kısıtlardır, örneğin 1 numaralı kullanıcının detayını getir dediğimizde aslında user/1/detail diyor peki ya id yerine kullanıcımız user/bir/detail yazarsa ne olacak ? Tabikide gereksiz bir sorgu çalışıp bizi bir maliyete sokacak işte bu ve benzeri durumlardan kaçınmak için route constraintlerden yararlanabiliriz, dilerseniz hemen başlayalım.

Proje Oluşturma

composer create-project laravel/laravel example-app
cd example-app
php artisan serve

Projemizi oluşturduktan sonra , routes\api.php dosyasına gelip

Route::get('/users/{id}', function (Request $request, $id) {
return response()->json($id);
})->where(['id' => '[0-9]+']);

yukarıdaki gibi bir endpoint tanımlıyorum, ilgili rotaya yalnızca id’si regex([0–9]+) 0–9 arasında pozitif sayısal değerler olan istekler girebilir diyorum ve artık id yerine yazılacak herhangi bir string’i kontrol etme ihtiyacına yada gereksiz bir sorgulamaya gerek kalmıyor.

Son olarak her route için bu tanımı yapmamız kod ameleleği olacağından ötürü bu işi app\Providers\RouteServiceProvider.php dosyasında aşağıdaki gibi bir config ile belirtip her rotanın sonuna where yazmaktan kurtuluyorum.

public function boot(){
....
Route::pattern('id', '[0-9]+');
}

Herkese İyi Çalışmalar Dilerim.

--

--

Yasin DALKILIÇ
Yasin DALKILIÇ

Written by Yasin DALKILIÇ

Hi, My name is Yasin I am a Software Developer, I love so much researching and development 😊 Here is my youtube channel @webciyasin

No responses yet