Expressions ile Laravel Routes Filtreleme Nasıl Yapılır?

2 hafta önce , Okuma süresi 1 dakika.

Laravel'in gerçekten harika olduğu bir şey, bir görünüm döndürmeden önce parametreler üzerinde düzenli ifade kurallarını çalıştırma becerisidir.
Expressions ile Laravel Routes Filtreleme Nasıl Yapılır?

Bu, elbette, etik olmayan kullanıcıların sisteminizin arka ucuna potansiyel olarak tehlikeli veriler göndermeye çalışmasını engelleyen birçok faydaya sahiptir.

Laravel'de, HTTP istekleri aracılığıyla gönderilen parametrelerin içlerinde doğru verilere sahip olduğundan emin olmak için düzenli ifade sorguları uygulayabilirsiniz. Standart rotalarımıza zincirleme işlevi çağrıları, katı düzenli ifade filtrelemeyi etkinleştirebilir ve istenmeyen URL isteklerini önleyebilir. Aşağıdaki bölümlerde normal ifade kalıplarını nasıl uygulayacağınızı öğrenin.

Peki bunu nasıl yapacağız?

Bu mükemmelliği sağlayan sihirli işlev, ->where()

Bir Mağaza web sitemiz olduğunu varsayalım, kendi ilgili kategorilerine sahip çeşitli ürünler satıyor. Mağaza, tek bir dize parametresinin mağazanın kategorisini tanımlamasına izin verir. Örneğin, mystore.com/store/toys

Bu parametrenin a olması gerektiğini biliyoruz stringve bu nedenle sayısal veya özel karakterlere izin verilmez.

Bu kuralları ele almak için rotamızı tanımlayalım

Route::get('/store/{category?}', '[email protected]')
     ->where('category', '[A-Za-z]+');
  • Bu belirli rota, artık görünümü yalnızca URL'nin - mystore.com/ toys gibi bir şey olması durumunda oluşturacaktır.
  • mystore.com/store/toys+ veya mystore.com/store/ 1234 denediysek, Laravel 404 sayfasını işleyecektir .
  • Bunun nedeni, yollar parametresine uygulanan normal ifadenin yalnızca küçük harf ile a ile z arasında eşleşmesidir .

Şimdi bir ürün kimliğinin de URL'nin parçası olmasına izin vererek bu yolu geliştirelim.  Örneğin : mystore.com/store/toys/3

 

Route::get('/store/{category?}/{id?}', '[email protected]')
    ->where('category', '[a-z]+')
    ->where('id', '[0-9]+');
  • Bu geliştirilmiş rota, artık görünümü yalnızca kategori için parametre alfa karakterler ise ve ürün kimliği daha önceki örnekte olduğu gibi sayısal ise (mystore.com/store/ toys/3) oluşturacaktır .
  • mystore.com/store/toys/33%%% veya mystore.com/store/ toys/12myProducts denediysek , Laravel 404 sayfasını işleyecektir .
  • Bunun nedeni, kategori parametresi kurallarına ek olarak, kimliğe yalnızca sayısal karakterler olduğundan emin olarak bir normal ifadenin uygulanmasıdır.

Özetle : 

Bu temel örneklerle, URL'ler aracılığıyla gönderilen parametrelere çok çeşitli kuralları nasıl uygulayabileceğinizi görebilirsiniz. Bu, denetleyicilerinizin ince ve temiz kalmasını sağlayarak bu veri parçalarını denetleyicinizde işleme ihtiyacını ortadan kaldırır. Yukarıdaki yollarda gösterilen örnekler yalnızca basit normal ifade kalıplarıdır, bunlar boş zamanlarınız için genişletilebilir ve her türden URL isteğini kabul edebilir / reddedebilir.

  •  

 

#php #Laravel