Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]routing + funkcja url
klapaucius
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----




Od razu zaznaczam, że dopiero uczę się ZF. Napotkałem na następujący problem. Mianowicie posiadam np. kontroler index, a w nim dwie akcje: akcja1 i akcja2. I do akcji akcja1 posiadam ustawiony następujący routing w pliku application.ini:

Kod
resources.router.routes.index_akcja1.route = "akcja1.html"
resources.router.routes.index_akcja1.defaults.controller = "index"
resources.router.routes.index_akcja1.defaults.action = "akcja1"


I teraz chcę w widoku akcji1 stworzyć link do akcji2 więc robię następujący url:

  1. $this->url(array('controller' => 'index', 'action' => 'akcja2'));


I otwierając ten widok standardowo za pomocą url: aplikacja/public/index/akcja1, wartosc tej funkcji jest poprawna. Natomiast wchodząc z adresu "routingowanego" aplikacja/public/akcja1.html, to owa funkcja url zwraca jako wartosc adres obecnege widoku (aplikacja/public/akcja1.html).

Dlaczego tak jest?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
karolrynio
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 25
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Ok, już rozumiem Twój problem.
Masz 2 rozwiązania: dla każdej akcji definiować nowy routing jeśli jest bardzo niestandardowy.
Ale jeśli chcesz ustawić sobie linki w formie: /{nazwa_akcji}.html
To możesz spróbować w application.ini:
Kod
resources.router.routes.index_akcja1.route = ":action.html"


Wtedy powinno chyba zadziałać:
  1. $this->url(array('controller' => 'index', 'action' => 'akcja2'), 'index_akcja1');
Go to the top of the page
+Quote Post
klapaucius
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(karolrynio @ 7.01.2013, 19:27:54 ) *
Ok, już rozumiem Twój problem.
Masz 2 rozwiązania: dla każdej akcji definiować nowy routing jeśli jest bardzo niestandardowy.
Ale jeśli chcesz ustawić sobie linki w formie: /{nazwa_akcji}.html
To możesz spróbować w application.ini:
Kod
resources.router.routes.index_akcja1.route = ":action.html"


Wtedy powinno chyba zadziałać:
  1. $this->url(array('controller' => 'index', 'action' => 'akcja2'), 'index_akcja1');

Niestety nic to nie zmieniło.
W takim skoro nie da się nic zrobić, no to zostanę przy ustawieniu routingu do wszystkich stron. Choć jednak uważam, że jakieś jest to dziwne rozwiązanie, bo muszę teraz routing ustawiać nawet do akcji, które nie mają widoku (a jedynie na przykład przekierowują) i jest to trochę dziwne no ale cóż.. skoro sie nie da inaczej...

Ten post edytował klapaucius 8.01.2013, 14:26:00
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 09:56