![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 3.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich!
Ostatnio zacząłem pisać mały routing. Napotkałem na dwa małe problemy(mianowicie związane z wysyłaniem parametrów getem), i nie wiem co z tym do końca zrobić. Wszystko jest oparte na path_info. Przykładowo mam taki adres: http://localhost/admin/users/show/5 ->path_info W momencie wysłania formularza getem mam coś takiego: http://localhost/admin/users/show/5/?param=4 I teraz choćby, jak temu zaradzić,a mianowicie, żeby żądanie wyglądało tak po wysłaniu formularza: http://localhost/admin/users/show/5/4 Drugi problem: Tak wyglądają tablice z danymi: array(1) { ["param"]=> string(1) "4" } array(4) { [0]=> string(5) "admin" [1]=> string(5) "users" [2]=> string(4) "show" [3]=> string(6) ":param" } array(4) { ["module"]=> string(0) "" ["controller"]=> string(5) "users" ["action"]=> string(4) "show" ["params"]=> array(1) { [1]=> string(1) "5" } } Pierwsza to get, druga to path_info(a raczej zdefiniowany przeze mnie adres w tablicy $_routes), a trzecia to wyjściowa, która poleci do PageControllera. Nie wiem, czy mam połączyć path_info z takim getem, czy można jakoś inaczej to obejść. Wyszukiwanie odpowiednich adresów opiera się wyłącznie na tym co zawiera path_info(w momencie otrzymania jakiegoś parametru adres nadal będzie pasował, a według mnie nie powinien i dlatego myślę o połączeniu, żeby była sprawdzana całość a potem klasa Request i tak dostanie to co jej będzie potrzebne - żądanie). Z drugiej strony w przypadku takiego połączenia i wyszukiwania adresów klucze geta nie będą mnie kompletnie interesowały(czyli wyciągam tylko wartości i resztę usuwam i to jest dla mnie trochę dziwne bo to oznacza w zasadzie, że klucze mogą być dowolne: http://localhost/admin/users/show/5/?PARAM=4 Ewentualnie klucz ten będzie oznaczał klucz w tabeli definiowania trasy,a ta jedynka pierwszy index tablicy $_GET:
Ma ktoś może jakiś pomysł? Pozdrawiam, szubi |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zerknij w dokumentację CakePHP 2.x bo widzę tu bardzo duże podobieństwo (chyba że nim się wzorowałeś (IMG:style_emoticons/default/smile.gif) )
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 3.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
W porządku Pyton (IMG:style_emoticons/default/smile.gif) Jutro zerknę, bo dzisiaj już nie mam siły :/ Wrzucam dwie klasy, żeby widać było jak to mniej więcej wygląda(jakby mógł ktoś też powiedzieć czy idę w dobrą stronę, czy też złą byłbym wdzięczny):
i druga klasa Abstract:
Zaawansowane to myśle to to nie jest, ale na początek pisania myślę tragedii chyba nie ma (IMG:style_emoticons/default/wink.gif) Pozdrawiam, szubi Nie napisałem wcześniej: Nie wzoruję się na niczym w zasadzie. Zerknąłem do Cake'a i szczerze powiedziawszy zainteresował mnie ten fragmencik:
ale wolałbym chyba zrobić osobną klasę Request i w takiej mniej więcej formie to definiować:
A wracając do mojego pytania: Połączyłem path_info z getem i w tej chwili to wygląda tak: http://localhost/index/admin/users/show/?param=2 -> wysłane getem z formularza http://localhost/index/admin/users/show/2 -> sam path_info Jeśli get istnieje to zostaje dołączony do tablicy path_info razem ze swoim indeksem. Działa pod jednym warunkiem. Kiedy jego klucz jest taki sam jak klucz zdefiniowany w drugiej tablicy(akcji): ?param=2
Trochę ograniczenie, ale z drugiej strony normalnie też to tak raczej wygląda, bo przecież klucz nie powinien być bez znaczenia. Teraz oba adresy zwracają dokładnie to samo, ale nie jestem do końca pewien tego rozwiązania. Czy mógłbym prosić o jakieś wskazówki? Pozdrawiam, szubi Ten post edytował szubi95 5.06.2015, 23:09:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 05:11 |