Adam W.

Adam W. senior php
developer, Symfony

Temat: kilka parametrów tej samej nazwy w URL

hi,

kolejny problem po przejściu z 1.0 na 1.2.7

w 1.0 w URL mogłem podać coś takiego: idwoj[]/7/idwoj[]/8 i można to było odczytać w akcji jako tablicę.

teraz print_r($sf_params->get('idwoj[]'));
zwraca mi tylko 8.

jest jakiś sposób na to, żeby w URL podać kilka wartości parametru o tej samej nazwie?
Adam W.

Adam W. senior php
developer, Symfony

Temat: kilka parametrów tej samej nazwy w URL

rozwiązałem to inaczej, nawet lepiej;)

url ma postać taką:
.../idwoj/12i6
12 i 6 to są idwoj :)

proste i łatwe.

konto usunięte

Temat: kilka parametrów tej samej nazwy w URL

Cuda można zrobić jeżeli napisze własną klasę rozszerzajaca sfRoute.
Np adresy:
/php/framework/symfony/f,3,1

Routing to zwraca w postaci:
slug = /php/framework/symfony/
page_type = f
pade_id = 3
page = 1

Od symfony 1.2 coś takiego jest możliwe.
Adam W.

Adam W. senior php
developer, Symfony

Temat: kilka parametrów tej samej nazwy w URL

Michał Wujas:
Cuda można zrobić jeżeli napisze własną klasę rozszerzajaca sfRoute.
Np adresy:
/php/framework/symfony/f,3,1

Routing to zwraca w postaci:
slug = /php/framework/symfony/
page_type = f
pade_id = 3
page = 1

Od symfony 1.2 coś takiego jest możliwe.

tak, wiem, że można cuda robić z routingiem.
ale nie wiem czy w tym przypadku miało by to sens.

może wytłumaczę do czego jest to potrzebne.
użytkownik na stronie ma formularz, w którym zaznacz checkboxy - województwa. można zaznaczyć kilka województw.
nie chcę przesłać danych z formularza POSTem, tylko tworze URL na który przekierowuje użytkownika po kliknięciu przycisku.

czyli w URL teraz mam coś takiego: modul/akcja/param1/val1/idwoj/12i8i9i6

w ten sposób w akcji wiem, że użytkownik zaznaczył województwa o id = 12, 8, 9, 6. takie rozwiązanie mi się podoba:)

wcześniej (symfony ver1.0) w URL była po prostu tablica /idwoj[]12/idwoj[]/8/idwoj[]/9/idwoj[]6

Temat: kilka parametrów tej samej nazwy w URL

Adam W.:
w ten sposób w akcji wiem, że użytkownik zaznaczył województwa o id = 12, 8, 9, 6. takie rozwiązanie mi się podoba:)

wcześniej (symfony ver1.0) w URL była po prostu tablica /idwoj[]12/idwoj[]/8/idwoj[]/9/idwoj[]6

Po mojemu jeżeli nawet chcesz zachować taki wygląd URLi wystarczy iż napiszesz własną klasę do routingu która ci takie arraye zbuduje (ewentualnie z adresu typu /idwoj/12,8,9,6 który wygląda już bardziej przyzwoicie ;)
Adam W.

Adam W. senior php
developer, Symfony

Temat: kilka parametrów tej samej nazwy w URL

Paweł Smoliński:
Po mojemu jeżeli nawet chcesz zachować taki wygląd URLi wystarczy iż napiszesz własną klasę do routingu która ci takie arraye zbuduje (ewentualnie z adresu typu /idwoj/12,8,9,6 który wygląda już bardziej przyzwoicie ;)

no tak, można napisać klasę routingu, która to zbuduje. tylko miałem to napisać szybko, a to był jak dla mnie najszybszy sposób.
jeżeli mógłbyś zasugerować konkretne rozwiązania, jak taka klasa routingu ma wyglądać to chętnie się zapoznam:)

edit:
rzeczywiście przecinek ładniej wygląda;)Adam W. edytował(a) ten post dnia 19.05.09 o godzinie 20:04

Temat: kilka parametrów tej samej nazwy w URL

Adam W.:
jeżeli mógłbyś zasugerować konkretne rozwiązania, jak taka klasa routingu ma wyglądać to chętnie się zapoznam:)
1. tworzysz klasę dziedziczącą po sfPatternRouting
2. lekko modyfikujesz metodę parse (looknij w jej definicję w sfPatternRouting) - wystarcz lekko zmodyfikować zawartość $info['parameters'] i po zawodach ;)

Aha, i trzeba potem of kors w factories.yml podać nową klasę jako odpowiedzialną za routing ;)Paweł Smoliński edytował(a) ten post dnia 19.05.09 o godzinie 22:54
Adam W.

Adam W. senior php
developer, Symfony

Temat: kilka parametrów tej samej nazwy w URL

Paweł Smoliński:
Adam W.:
jeżeli mógłbyś zasugerować konkretne rozwiązania, jak taka klasa routingu ma wyglądać to chętnie się zapoznam:)
1. tworzysz klasę dziedziczącą po sfPatternRouting
2. lekko modyfikujesz metodę parse (looknij w jej definicję w sfPatternRouting) - wystarcz lekko zmodyfikować zawartość $info['parameters'] i po zawodach ;)

Aha, i trzeba potem of kors w factories.yml podać nową klasę jako odpowiedzialną za routing ;)Paweł Smoliński edytował(a) ten post dnia 19.05.09 o godzinie 22:54

przecinki w URL okazały się być kodowane, także trzeba co nie co zmodyfikować. tutaj jest to opisane http://codeminers.home.pl/blog/?p=29
ale jakoś mi się nie uśmiecha modyfikować tą metodę, bo co będzie jak będą nowe wersje symfony? trzeba będzie tego pilnować.
tak więc zastąpię z , na _ i już. po co kombinować:)



Wyślij zaproszenie do