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 string
ve bu nedenle sayısal veya özel karakterlere izin verilmez.
Bu kuralları ele almak için rotamızı tanımlayalım
Route::get('/store/{category?}', 'StoreController@index')
->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?}', 'StoreController@index')
->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.