Laravel kurulumunu gerçekleştirdikten sonra artık roting işlemlerine geçebiliriz.
Aslında bu konu kod yazma anlamında ilk dersimizi de ifade etmektedir.

Bir web uygulamasını ele aldığımızda istemcilerin get ve post işlemleri yapabildiğini biliyoruz.

Geliştiriciler frameworkler üzerinde bu iki methodu fonksiyonlarda parametre olarak kullanmaktadırlar.

Ana dizinden routes klasörü içerisine bulunan web.php dosyasını açın ve aşğıdaki kodu içerisine kopyalayın.

uygulamanıza local sunucunuz üzerinden bağlanıp /merhaba

Route::get(‘/merhaba’, function () {
return ‘Merhaba Dünya’;
});

ekranda Merhaba dünya yazısını görmüş olacaksınız.

burada ayrıca değinilmesi gereken bir nokta return olarak view içerisinde tasarlanmış olan bir sayfayı da istemciye gösterebilirdiniz. bunun için örneğin resources/views içerisinde merhaba.blade.php olduğunu varsayalım.

 
Route::get('/merhaba', function () {
    return view("merhaba");

}); 
 

kodu merhaba viewinin kullanıcıda görünmesini sağlayacaktır.

Yukarıdaki kod blogu get methodu ile çalışırken aşağıdaki kod blogu hem get hem de post işlemlerine yanıt dönebilmektedir.

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

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

Aşağıdaki komutlarda parametreye ihtiyaç duyan web isteklerini yönlendimreyi göreceksiniz.

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});

bu komutlar yardımıyla user/5 şeklinde uygulamaya gelen isteği yanıtlamak için nasıl bir yönlendirme yapıldığını göstermektedir.

Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
   
return "post idsi: ".$postID." Yorum idsi: ".$commentId;

});

İlerleyen derslerimizde veritabanında kayıtlı bulunan verileri bu gelen idler ile nasıl bulacağımızı anlatacağım.



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


eğer siz kullanıcıdan isim almak isrtiyorsunuz fakat bu alanı da zorunlu tutmak istemiyorsanız o zaman opsiyon olarak tanımlayabilir ve yönlendirme işlemlerinizi bu sayede gerçekleştirebilirsiniz.

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

burada ise bir filtreleme görüyorsunuz bu filtre aracılığı ile kullanıcı eğer sadece harflerden oluşan bir isim ile uygulamanızdan bir istekte bulunmadıysa onu başka bir yere yönlendirebiliyorsunuz ya da ilgili isteği geçersiz sayıyorsunuz.

 


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]+']);


yine yukarıdaki iki örnekte de aynı ifadeleri görmektesiniz. en son örnekte bir array içerisinde yer alan filtre toplu halde filtreleme yapmamıza olanak sağlamakta.

İşin aslına en can alıcı noktası burası sanırsam

 

    Route::pattern('id', '[0-9]+');

route üzerine bir patern oluşturup (desen oluşturup) id si eğer sayılardan oluşmuyorsa hiçbir id parametresi alan hiçbir isteği kabul etme anlamına gelmekte yani her bir yönlendirme için tek tek where komutu ile filtre yazmanıza gerek kalmıyor yalnız bu işlemi gerçekleştirebilmeniz için

App/Providers/RouteServiceProvider.php ‘a gelin


 public function boot()
    {
        //


        parent::boot();
    }

fonksiyonunu editleyin ve

 


 public function boot()
    {
        //

		Route::pattern('id', '[0-9]+');
                parent::boot();
    }

bu şekilde bir pattern ekleme işlemi gerçekleştirebilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir