![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam,
buduję stronkę w Symfony. Napotkałem problem z routingiem. Jak powinienem skonfigurować wpis w routing.yml? 1) plik routing.yml posiada taką konfigurację dopisaną przeze mnie: download: url: /download/:id/* param: { module: download, action: application} 2) plik, gdzie jest wygenerowany link w ten sposób: <? echo link_to('Download', 'download/12023/ApplicationName');?> Po najechaniu myszką na link jednak generuje mi się coś takiego: http://<adres>/download/12023 a chciał bym coś takiego http://<adres>/download/12023/ApplicationName Download to wygenerowany moduł. W akcji executeApplication() potrzebuję pobrać ID aplikacji (w tym przypadku: 12023 dostępne jest pod zmienną z GET o nazwie `id`) - i z tym nie ma problemu. Chciał bym jednak, żeby generowała się w linku nazwa aplikacji. Nie jest konieczne, żeby była dostępna przez metodę GET, bo na podstawie ID mogę pobrać ją sobie w bazie. Zależy mi tylko, żeby wyświetliła się w URL. Dzięki Rafał |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wygenerowało się coś takiego:
http://<address>/download/12023%26ApplicationName i w `get` otrzymałem `12023&ApplicationName`; Jak zmieniłem na:
to wygenerowało się dobrze - tak jak chciałem, ale stronka się nie otworzyła. Adres na jaki przekierowało to: http://<address>/download/12023%2FApplicationName Pozdro Rafał |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Biega.
Możesz więcej o tym opowiedzieć? Co oznacza @ na początku? |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Możesz więcej o tym opowiedzieć? Co oznacza @ na początku? Małpa to odniesienie do nazwy konkretnego routingu.Na przykład jeśli miałbyś linka http://<adres>/login To routing mógłby wyglądać tak: Kod login: url: /login param: {module: auth, action: login} Więc zamiast pisać:
piszesz:
Jaką masz przewagę? Załóżmy teraz że chciałbyś przenieść logowanie do innego modułu lub akcje czy umieścić je pod innym adresem: Kod login: url: /ukryty_adres param: {module: jakiśInnyModuł, action: jakaśInnaAkcja} I tyle. Wystarczy zmiana w konfiguracji. Przy stosowaniu kombinacji moduł/akcja w parametrze funkcji link_to musiałbyś w całej aplikacji zamieniać na: a tak nadal zostaje: symfony samo za Ciebie załatwi sprawę. A sztuczka z = to ... taka sztuczka :-) Ten post edytował mike 20.06.2008, 19:11:42 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, że teoretycznie po znaku = powinna być przypisana jakaś wartość parametru, więc ApplicationName to poprostu nazwa zmiennej, do której nic nie jest przypisane?
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:17 |