Laravel Route Sistemi ve Kullanımı

6 dk okuma süresi 589 görüntülenme 11.10.2023 4.9 (18 değerlendirme)

Merhaba Phphocasi.com.tr takipçileri,
Yiğit Serin’den devraldığım Laravel Eğitimi serisini beşininci dersi olan laravel route kullanımını bu yazıda anlatmaya çalışacağım.Umarım sizler için de faydalı olur.

Route kullanımı laravel kurulumundan sonra sistemi öğrenmek için atılacak temel adımdır. Route ile sisteminize gelecek olan istekleri Controller, View gibi bölümlere yönlendir ve istek için çalışacak kod parçacıklarına ulaşırsınız. Bunun için laravel framework yapısını route ile öğrenmeye başlamak uygun olacaktır.

İlk olarak daha önceki derslerde laravel 5.4 ile başlandığı için ben de onunla devam edeceğim. Şu andaki güncel sürüm 5.5 olmasına karşın bu yazıda bahsedeceğim hususlar için 5.5 ile 5.4 arasında hiçbir fark yoktur.

Laravel kurulum dizininde yer alan ‘routes/web.php’ dosyasını açıyoruz.

laravel route.php yeri
Laravel route kullanımı

Sıfır kurulum yaptığımızı düşünürsek eğer karşımıza yorum kısmı hariç aşağıdaki kod gelecektir.

Route::get("/", function () { return view("welcome"); });

Bu kod, sitenizin giriş ekranı yani ‘/’ için ‘welcome’ View dosyasının çalışacağını belirtir. Burada yer alan ‘Route::get…’ bölümü ise isteğin geldiği methodu belirtir. Kullanabileceğimiz methodlar;

Route::get($url, $callback); Route::post($url, $callback); Route::put($url, $callback); Route::patch($url, $callback); Route::delete($url, $callback); Route::options($url, $callback);

Burada önemli bir not belirtmekte fayda görüyorum. POST, PUT ve DELETE methodlarını çağırabilmek için CSRF koruması yapmamız gerekli. Buna daha sonraki derslerimizde bahsedeceğim ama bu yazıda ufak bir not olarak belirtmek istedim.

Konumuza dönecek olursak ‘$url’ gelen internet sitenizin adresi, ‘$callback’ ise çalışacak fonksiyonu belirtiyor. İlk örneğimize bakarsak çalışacak ‘$url’ için ‘/’ girilmiş ve ‘$callback’ içinse function ile başlayan bölüm belirtilmiş. Burada fonksiyon ile beraber ‘View‘ çalışması sağlanmış.

Route ile Controller çağırmak için aşağıdaki gibi bir kod gereklidir.

Route::get("kullanici/profil", "UserController@uyeGoster");

Gördüğünüz bile kullanılacak Controller çağırmak için ‘UserController@uyeGoster’ kullanıyoruz. Bu değişkende ilk önce Controller ismi daha sonrada fonksiyonun adı kullanılmalıdır.

Laravel Route İsimlendirme

Laravel route için isimlendirme (Name) kullanımı sistem içerisinde route için link verebilmeyi kolaylaştırmak için yapılır.

Route::get("kullanici/profil", "UserController@uyeGoster")->name("profil");

Yukarıdaki örnekte bu route için isimlendirme kullandık. Bu isimlendirmeyi laravel view içerisinde de şu şekilde kullanıyoruz;

route("profil");

Bu sayede route için gerekli link otomatik olarak oluşturulacaktır.

Laravel Route Gruplandırma

Gruplandırma middleware, namespace, prefix gibi birçok route bağlantısı olan durumlar için uygundur.

Route::namespace("Admin")->group(function () { Route::get("yonetici", "UserController@yoneticiGoster"); });

Yukarıdaki örnekte kullanılacak olan Controller dosyalarının ‘Admin’ klasörü altında olduğunu belirttik. Prefix için de bir örnek verelim.

Route::prefix("admin")->group(function () { Route::get("yoneticiler", "UserController@yoneticiListele"); });

Bu örnekte ise url adresinin ilk bölümünde ‘admin’ gelen bağlantıların yapılacaklarını belirttik. Daha kısa bir açıklama ile buradaki route bilgisine ulaşmak için gelen adresin ‘admin/yoneticiler’ olması gereklidir.

Laravel Route Parametre Kullanımı

Route ile gelen parametreleri yönlendirebiliriz. Bunun için adresten alınabilecek parametreleri belirtmemiz gerekli.

Route::get("yonetici/{id}", "UserController@yoneticiGoster");
Route::get("yonetici/{id?}", "UserController@yoneticiGoster");

Bu kodlar birbirininden tek farkı alttakinde yer alan ‘?’. Önce soru işareti olmayanı açıklayayım. Burada adresimiz ‘/yonetici/1’ olarak gelmelidir. Bu örnekte kullanılan ‘1’ id yerine geçer ve kodun devamında yer alan Controller içerisinde kullanılacak bir parametre olarak gönderilir. İkinci kod parçasında ise soru işareti ile anlattığımız şey parametre olabilir ya da olmayabilir demektir. Yani ilk kod ile ‘yonetici’ adresini çalıştıramayız hata alırız ama ikinci kısım ile hem ‘yonetici’ hem de ‘yonetici/1’ adreslerini çalıştırabiliriz. Bunun en yaygın örneği olarak şu senaryoyu düşünebiliriz. Bir yönetim panelinde kullanıcıları listeleyecek ve bu listeden seçilen kullanıcının detay bilgisini göstereceksiniz. Bunun için laravel route sistemini iki şekilde yapabilirsiniz.

Route::get("kullanici", "UserController@yoneticiGoster"); Route::get("kullanici/{id}", "UserController@yoneticiGoster");

veya

Route::get("kullanici/{id?}", "UserController@yoneticiGoster");

Tabi arada bir satır var gibi görünse de oluşturacağınız sistem büyüdükçe bu kullanımın yararını görebilirsiniz. Unutmamak gerekir ki sistemi temiz kod yani takip edilebilir/anlaşılır yazmak günümüz dünyasında son derece önemlidir.

Phphocasi.com.tr için yazdığım bu ilk eğitimde laravel route için gerekli olacak konulara değindim. Daha fazla detaylı bilgi için laravel dökümanından yararlanabilirsiniz.

Tüm Laravel Derslerimiz için tıklayınız.

Phphocasi.com.tr üzerinden yayınladığım laravel eğitimlerine devam edeceğiz. Yazımız ile ilgili tüm sorularınızı yorum bölümden ulaştırabilirsiniz. Bunun dışındaki diğer sorularınız için sorucevap.phphocasi.com.tr sitesini kullanabilirsiniz.

Umarım sizin için yararlı olmuştur. Okuduğunuz için teşekkürler. Daha fazla kişinin okuması için paylaşmayı unutmayın…

89
Makaleyi Değerlendirin

Bu makale işinize yaradı mı? Puan verin!

Okuyucu puanları makalelerimizin arama motorlarında öne çıkmasına ve güncellenmesine destek olur.

4.9 / 5 (Toplam 18 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu makale ve teknik konuyla ilgili detaylar

Laravel Route Sistemi ve Kullanımı makalesindeki yöntemler hangi sürümlerde geçerlidir?

İçerikteki çözümler ve kod örnekleri güncel PHP 8.x ve modern web standartları referans alınarak test edilmiştir.

Bu konuda başka makalelere nereden ulaşabilirim?

Sayfanın sağ tarafındaki Kategori Menüsü ve ilgili yazılar alanından benzer teknik rehberleri inceleyebilirsiniz.