Laravel Route(Yönlendirme) Kavramı

Yönlendirme Laravel'deki temel kavramlardan biridir. Laravel'de yönlendirme, tüm uygulama taleplerinizi belirttiğiniz, controlere yönlendirmenizi sağlar. Laravel'deki ana ve birincil yollar, bir URI'yi (Tekdüzen Kaynak Tanımlayıcı) bir closure fonksiyon ile birlikte kabul eder, çünkü basit ve etkileyici bir yönlendirme yöntemi olması gerekir. Bu bölümde Laravel'in yönlendirme kavramı hakkında bilgi edineceksiniz.

Laravel'de tüm istekler Route yardımı ile eşleştirilir. Temel yönlendirme, isteği ilgili controllere yönlendirir.

Laravel'de yönlendirme aşağıdaki kategorileri içerir:

Tüm uygulama Rotaları routes/web.php dosyasına kaydedilir. Bu dosya Laravel'e yanıt vermesi gereken URI'leri söyler ve ilgili denetleyici buna özel bir çağrı verir. Aşağıda Laravel'in açılış sayfası rotası dosyası ve routes dizinin yapısını göstermektedir.


laravel routes


Route:: get ('/', function () {

   return 'Merhaba PHP Dünyası';
});

Route class'ın get methodu çağrılıyor "/" Anasayfa çalıştığında bir closure fonksiyon döndürülüyor.

ÖRNEK:


Route::get('/deneme', function() {  

return "Deneme sayfası";  
});  	

Yukarıdaki örnekte, URL'ye /deneme Şeklinde girilmiş bu nedenle web tarayıcısına localhost:8000/deneme URL'sini girmemiz gerekir.

ÇIKTI:

Deneme sayfası

Kullanılabilir Yönlendirici Yöntemleri


Route::get ('/', function () {
   return 'Welcome to index';
});	



Route::post('user/test', function () {
   return 'Welcome to test';
});



Route::put('user/deneme', function () {
//
});



Route::delete('post/example', function () {
//
});


Bazen birden çok HTTP fiiline yanıt veren bir rota kaydetmeniz gerekebilir. Bunu match yöntemi kullanarak yapabilirsiniz . Ya da, any methodu kullanarak tüm HTTP fiillerine yanıt veren bir rota bile kaydedebilirsiniz:


Route::match(['get', 'post'], '/', function () {
    //
});

Route::any('/', function () {
    //
});

CSRF Koruması

HTML formları POST, PUT yada DELETE tanımlanan rotaları, form dosyasının bir CSRF belirteç alanını içermelidir. Aksi takdirde, istek reddedilecektir.


<form method="POST" action="/profile">
    @csrf
    ...
</form>

Views Route Yapısı

Rotanızın yalnızca bir views döndürmesi gerekiyorsa, views yöntemi kullanabilirsiniz. Tam bir rota veya controller tanımlamak zorunda kalmamak için bu yöntem basit bir kısayol sağlar. Yöntem, ilk değişken bir URI kabul eder ve ikinci bağımsız değişken olarak bir views dosya adıdır.


Route::view('/welcome', 'welcome');

ikinci parametre "welcome", welcome.blade.php dosyasıdır.

Yönlendirme Rotaları

Laravel'in Rota cephesinde sağladığı farklı methodlar vardır. Bunlardan biri yönlendirme methodur. Method adından da anlaşılacağı gibi, bu method başka bir rotaya yeniden yönlendiren bir URI tanımlarken kullanışlıdır. Aşağıda nasıl kullanılır gösterilmiştir.


Route::redirect('/user', '/admin');

/user yoluna erişmeye çalışırsanız, /admin yoluna yönlendirileceğiniz anlamına gelir. Laravel'in bize sağadığı kolaylık.

Gerekli Parametreler

Adından da anlaşılacağı gibi, bunlar web uygulamasını yönlendirmek için zorunlu olarak yakalanması gereken parametrelerdir. Örneğin, bir kullanıcının kimlik numarası (user/id).

http://localhost:8000/user/5

http://localhost:8000/user/Ahmet

Yukardaki URL'leri girerek deneyin.


Route::get('user/{id}', function ($id) {

   return $id;
});

Opsiyonel Parametreler

Bir rota tanımına göre, belirtilen parametreleri URL'ye geçirmek isteğe bağlıdır. İsteğe bağlı parametreler soru işareti "?" parametre adından sonra varsa, varsayılan değer ayarlanmıştır. İsteğe bağlı rota tanımları aşağıda gösterilmiştir.

http://localhost:8000/user/Ahmet

http://localhost:8000/user

Yukardaki URL'lare girerek deneyin.


Route::get('user/{name?}', function($name = "null" ) {

   return 'Girilen ad: ' .$name;
});

Not :isteğe bağlı parametre ayarladıysanız parametre girilmezse PHP bir hata verecektir. fonksiyondaki değişkenin değerini null ayarlayın.

Düzenli İfade Kısıtlamaları

Bir route örneğinde where yöntemini uygulayarak route parametrenizin biçimini kısıtlayabilirsiniz. where Yöntem parametresi ve parametre kısıtlı nasıl olması gerektiği tanımlayan bir düzenli ifade adını kabul eder. Bu kısıtlamalar bize ne gibi faydası olur. bu yöntemle injection saldırıları önlenir.


Route::get('user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

İsimli Rotalar

Adlandırılmış yollar, belirli rotalar için URL'lerin veya yönlendirmelerin uygun şekilde oluşturulmasına olanak tanır. name Yöntemi rota tanımına zincirleyerek bir rota için bir ad belirleyebilirsiniz. bu ad ile kolay, sistem içi linkler oluşturabiliriz.


Route::get('user/test', function () {
    //
})->name('test');

controller için rota adları da belirtebilirsiniz:


Route::get('user/test', 'UserProfileController@show')->name('test');

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


route('test');	

HTML sayfasında şöyle kullanılır.


<a href="{{route('test')}}">Test sayfa</a>	

Makalede Geçen Bazı Kelimelerin Açıklaması

URI : Uniform Resource Identifier teriminin kısaltılmış halidir. İnternet’te bir kaynağın tam yerine işaret eden (belge veya resim gibi), standart bir formata uygun bir karakter dizgisidir. Bir URL’in altında bulunan bir kaynağın tam yoluna işaret eder. "https://www.webcebir.com/300-laravel-nedir-dersi.html", URI’e bir örnektir.

URL : Uniform Resource Locator teriminin kısaltılmış halidir. Türkçeye doğrudan çevrildiğinde Bir örnek Kaynak Konumlayıcı ya da Tekdüzen Kaynak Bulucu şeklinde çevrilebilir. İnternet’te bir kaynağın yerine işaret eden (belge veya resim gibi), standart bir formata uygun bir karakter dizgisidir. "https://www.webcebir.com", URL’ye bir örnektir.

Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır. Lütfen Yukarıda ki mesajları okuyun tekrar aynı soruları sormayın.

7733

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
  • Git
  • React
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML FORM OLUŞTURMA
  • CSS YATAY MENÜ YAPIMI
  • HTML RESİM EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML DİV ve SPAN NEDİR?
  • HTML ARKAPLANA MÜZİK EKLEME
  • KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.