Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%)
|
Witam,
niedawno postanowilem sie troche podszkolic w programowaniu obiektowym i napisac aplikacje wykorzystujac MVC, troche glowkowalem i wszystko jakos ogarnalem, chodiz fajnie... z tym ze nie chce pozniej sie bawic w tworzenie przyjaznych URL-i gdy juz wszystko bedize gotowe... wiec postanowilem to zrobic teraz, zanim stworze cala strukture podstron... W kazdym razie przejdzmy do wlasciwego problemu, jak mi wiadomo gdy opieramy sie na MVC wywolanie jakiejs akcji tudziez podstrony polega na podaniu kontrollera i pozniej opcjonalnie akcji i ewentualnie dodatkowych parametrow. a wiec np. jezeli na stronie chcialbym wyswietlic jakas kategorie, wyciagana z bazy, URL wygladal by mniej wiecej tak : "?controller=kategorie&action=pokaz&kat=agd" w takim przypadku stworzenie przyjaznych linkow w formie "/kategorie/pokaz/agd/" nie jest problemem... jednak zalezalo by mi, jezeli jest to mozliwe wogole, aby link mial postac duzo prostsza... a mianowicie nie pokazywal kontrollera i akcji, a bezposrednio kategorie: "/agd/" . Wydaje mi sie ze bylo by to dobre rozwiazanie, zwlaszcza gdyby w linku byla kategoria i podkategoria, nie mowiac jzu o przypadku gdyby ich nazwy skladaly sie z kilku slow, gdyby do tego jeszcze dorzucic nazwe kontrolera i akcji, link moglby urosnac do zbyt duzych rozmiarow.... a wiec moje pytanie brzmi, czy jest taka mozliwosc? bo nie moge wymyslic, jak w takim razie router rozpoznal by ktory kontroller i ktora akcje ma odpalic... |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Wątek nie ma de facto nic wspólnego z samym wzorcem MVC - określenie parametrów żądania to zadanie routera. Bardzo proste, a jednocześnie dosyć wszechstrone rozwiązanie to wspomniana przez dr_bonzo mapa wzorców. Definiujesz sobie wszystkie "wzorce" URLi w postaci wyrażeń regularnych, dodajesz do nich jakieś domyślne parametry (jeżeli potrzeba). Każda reguła musi Ci zwrócić zawsze minimum dwie informacje: nazwy kontrolera i akcji.
Mapa może mieć przykładowo postać: Kod produkt: Określenie paramterów żądania sprowadza się teraz do sprawdzenia czy REQUEST_URI pasuje do wzoru - jeżeli nie sprawdzamy kolejny aż do 404.
wzór: #^/produkt/(?<id>\d+)/(?<nazwa>[\w-]+)\.html$# domyślne-parametry: kontroler: produkt, akcja: pokaż strona-główna: wzór: #^/$# domyślne-parametry: kontroler: głowna, akcja: pokaż |
|
|
|
zembi1991 NiceURL w MVC ? 1.09.2010, 20:33:49
dr_bonzo CytatURL wygladal by mniej wiecej tak : "?con... 1.09.2010, 20:39:19
zembi1991 hmm.. nie bardzo rozumiem jak by to mialo dzialac ... 1.09.2010, 20:50:19
dr_bonzo Ja to robie przed zbudowaniem kontrolera. Jako plu... 1.09.2010, 21:00:23
Pilsener Najlepiej przyjąć, że:
- wszystkie żądania wysyłam... 1.09.2010, 21:21:49
dr_bonzo @Crozin - nie o taką mapę mi chodziło - ty prezent... 7.09.2010, 07:51:00
wiiir poniewaz aktualnie siadlem do pisania cms, ja mam ... 7.09.2010, 10:30:14
Pilsener To co napisałeś to jakiś koszmar, mam utworzyć adr... 8.09.2010, 08:43:15 
wiiir Cytat(Pilsener @ 8.09.2010, 09:43:15 ... 8.09.2010, 09:37:44
Pilsener Menu generuje normalnie, na podstawie drzewa kateg... 8.09.2010, 12:35:37
wiiir Tyle ze moim przypadku moge zrobic sobie np
[HTML]... 8.09.2010, 14:47:48
Pilsener [HTML] pobierz, plaintext strona.pl/to-jest-kolejn... 8.09.2010, 18:42:52 
wiiir Cytat(Pilsener @ 8.09.2010, 19:42:52 ... 8.09.2010, 19:49:30
dr_bonzo Cytat- a jak ktoś doda np. artykuł zawierający ide... 8.09.2010, 18:50:52
Pilsener CytatA po co? Paginacja i szukarka operuje na QUER... 9.09.2010, 08:52:17 
wiiir Cytat(Pilsener @ 9.09.2010, 09:52:17 ... 9.09.2010, 10:28:30
dr_bonzo CytatPo mojemu to Wasz sposób jest mało elegancki ... 9.09.2010, 09:02:36
Pilsener CytatUżywasz za każdym razem drzewa kategorii? - t... 9.09.2010, 09:22:53
Pilsener Cytatw bazie nie trzymamy nice urli tylko oryginal... 9.09.2010, 12:12:19
dr_bonzo CytatCytatnie jest potrzebny algorytm ktory bedzie... 9.09.2010, 13:57:12
marcio @dr_bonzo mozesz pokazac jak mapujesz te url w rou... 9.09.2010, 14:00:46 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 11:30 |