URL Yapısı

url
MVC yapısını anlamaya, öğrenmeye çalışıyorum. Yalnız şu konuyu çözemedim:

Tek bir kontroller ile şu 3 url şemasını nasıl kontrol edeceğim?

adres.com/makaleler/ -> ana kategori urlsi

adres.com/makaleler/1/ -> sayfalama urlsi
adres.com/makaleler/notlar-sifirlaniyor/ -> makale detay urlsi

Bu 3 url'yi tek controllerden harekete geçirmek mümkün mü? Değilse, her biri için ayrı kontroller mi oluşturacağım? Ama bu da mantıksız geliyor, o zaman kategori sayısınca php dosyası oluşturmak lazım ?

Basit bir örnekleme ile yardımcı olur musunuz?

Cevaplar (3)


Turan Karatuğ
Software Developer - Creator of TitanMVC
4 yıl önce

Örneğin, databasedeki makaleleri listelediğimiz ve listelenen bu makalelerden herhangi birine tıklandığında detaylarını görebildiğimiz bir yapı kurmak istiyoruz.

Bunun için Makale controller'ı oluşturup index methoduna makale listeleme sayfamız için gerekli kodları yazıyoruz. Model'den sorgulanıp gelen makale listesini view dosyamıza gönderiyoruz.

Makale detay sayfası için ise, yine Makale controller'ına makaleDetay adında bir method ekliyoruz. Bu method isteğimize göre ilgili makalenin id'sini ya da slug'ını parametre olarak almalı. Parametreden gelen veri ile makale tablomuzdan ilgili makaleyi seçip view'a gönderiyoruz.

Böylece tek bir controller içerisinde her iki sayfayı da oluşturmuş olduk. Sıra geldi rota tanımlamaya. Bunun için /App/Config/Routes.php dosyasını açıp aşağıdaki gibi rotalarımızı giriyoruz;
Route::get('/makaleler', 'Makale@index');
Route::get('/makaleler/(d+)', 'Makale@makaleDetay');
Yukarıdaki ikinci rotada kullanılan regexp yalnızca numeric karakterlerin parametre olarak verilebileceğini gösteriyor. Slug kullanmak isterseniz (w+) desenini işiniz görecektir.

Ayrıntılı bilgi için kılavuzdaki "Temel Konular" ana başlığı altındaki konuları incelemenizi tavsiye ederim.
http://v2.titanphp.com/doc
brhn
php
4 yıl önce

Çok teşekkürler. Bu rotanın mantığı bir tür htaccess dosyası gibi galiba?
Turan Karatuğ
Software Developer - Creator of TitanMVC
4 yıl önce

Kavramsal olarak benzer bir olay evet. URL'e göre çalıştırılacak controller ve methodları belirlemenizi sağlıyor. Size tavsiyem öncelikle MVC kavramını teorik olarak öğrenmeniz. Daha sonra uygulamada Titan yardımcı olacaktır.

Cevap Yazın


[code=php,css,sql]kod[/code] , [url=http:...com] , [img=imaj linki] , [color=renk_kodu]metin[/color]