![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, ucząc się ZF napotkałem na problem ustawienia domyślnej wartości w generowanym adresie url. W application.ini mam:
Mając 'route = "statyczny-tekst/:year/*";' generuje mi takiego linka 'costam/statyczny-tekst' bez ustawionego 'year', a chciałbym mieć taki adres: statyczny-tekst/1234.html. Jak zrobię to wstawia za 'year' wartość 1234, ale url wygląda tak: statyczny-tekst/1234/.html. Próbowałem różnych kombinacji wartości route, ale nie moge dojść jak to zapisać. Pomoże ktoś? PS: chciałem zrobić tak jak to jest TUTAJ(zend manual) w 1-szym przykładzie. Ten post edytował kaem 28.12.2011, 17:03:24 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
No dobrze, ale w czym jest problem?
Default jest głównie po to, żeby ustawić wartość zmiennej jeśli nie jest ona przekazywana w adresie. Parametry są automatycznie opuszczane od prawej do lewej. Jeśli chcesz mieć rok w adresie to dlaczego go nie przekażesz do helpera url? Inaczej nie miałoby to sensu - defaultowy parametr zawsze występowałby w adresie niezależnie od woli programisty i tego, czy jest aktualnie potrzebny czy nie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Więc tak: chce mieć taki adres, żeby bezpośrednio za zmienną było '.html' czyli np. 'jakis/adres/MOJA-ZMIENNA.html'. Nie wiem jak ustawić wartość resources.router.routes.naswojeksiegi.route aby to osiągnąć.
Adres generuje za pomocą funkcji url: Cytat Jeśli chcesz mieć rok w adresie to dlaczego go nie przekażesz do helpera url? Czasami miałem takie sytuacje, że pod zmienną pobieraną z bazy nie było żadnej wartości, i żeby nie psuć linka musiałem dodać jakąś domyślną wartość.Mam jeszcze jedno pytanie: 1. Czasami chciałbym przekazać parametry, które nie były wcześniej zdefiniowane, czyli np. robię tak: ale zmienna1 nie jest generowana w url. Czyli chce mieć coś takiego: 'jakis/adres/2011.html?zmienna1=wartosc1' Jak to można osiągnąć? Ten post edytował kaem 28.12.2011, 17:05:18 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
1. Jak chcesz dokleić .html na końcu to musisz użyć routera regexp, ewentualnie popatrzeć na możliwości jakie daje route_chain (ale nigdy się tym nie bawiłem, wiem tylko, że dzięki temu można łączyć ze sobą routingi)
2. Jak chcesz mieć routing elastyczny, ktory dokleja parametry do adresu to masz kilka opcji: - użyć zwykkłego route z regułą zawierającą gwiazdkę na końcu /:zmienna/* (wtedy kolejne zmienne będą doklejana tak jak w defaultowym routingu) - ręcznie doklejać zmienne do adresu w sposób ?param=value - napisać własny routing który uwzględni wszystkie Twoje zachcianki |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki działa
![]() Swoją drogą moim zdaniem trochę pokręcony jest system routingu w Zendzie.. brakuje mi coś na wzór tego z Agavi. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Możesz stworzyć własny helper URL z identycznymi parametrami jak oryginalny. W nim wywołasz właściwy helper url, dokleisz do niego .html. Tylko będziesz potrzebował jeszcze plugin front kontrolera z preRoute, które usunie .html. To taka nadbudowa, ale stosowałem podobne i działają.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:51 |