Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]problem z routingiem
Forum PHP.pl > Forum > PHP > Frameworki
ceieneka
yoyo
Bawie sie ze stronka postawiona na home.pl i mam nastepujacy problem w module main mam dwie akcje index i web, plik routingu wyglada tak:

  1. moja:
  2. url: /niszcz-peona
  3. param: { module: main, action: web}


w pliczku indexSuccess.php mam nastepujacy link:

  1. <a href="http://www.xxx.com.pl/niszcz-peona"><strong>Kliknij by zniszczyć peona</strong></a>


po kliknieciu w link wywala mi blad 404 page not found

a najdziwniejsze jest to ze jak mialem wczesniej wszystko to samo tylko zamiast "/niszcz-peona" było "zabij-peona" to wszystko dzialalo, gdy dokonalem zamiany nagle wywala 404, zeby bylo jeszcze smieszniej dodam ze po wpisaniu w przegladarce z reki adresu xxx.com.pl/zabij-peona nadal wyswietla mi poprzednia strone, do ktorej routingu juz nie ma.
To wyglada tak jakby na ktoryms poziomie nie byla wyczyszczona pamiec przegladania, oczywiscie po dokonaniu zmian wywalilem wszystko z katalogu cache i wyczyscilem historie przegladanych stron.
O czym zapomnialem?
blackroger
a oprócz wywalania z katalogu użyłeś symfony cc?
ceieneka
A jak na home.pl mozna zrobic symfony cc blinksmiley.gif z tego co wiem to nie ma dostepu do konta shellowego, wiec pozostaje tylko czyscic katalog.

To was zaskoczy!! albo i nie, tak czy siak mnie zaskoczylo wacko.gif po calym dniu testow doszedlem do tego, gdy w pliku routingu sciezki mam ustawione tak

  1. moja:
  2. url: /niszcz-peona
  3. param: { module: main, action: web}
  4.  
  5. #tu jakies inne sciezki
  6. #i na koncu
  7.  
  8. moja:
  9. url: /zabij-peona
  10. param: { module: main, action: web}


dziala sciezka www.xxx.com.pl/zabij-peona, jak je zamienie miejscami zawsze dziala ta na koncu routingu, dalej w przypadku gdy niszcz-peona jest na końcu pliczku a sciezke z zabij-peona zakomentuje nie dziala zadna z nich, a w przypadku gdy zabij-peona jest na koncu i niszcz-peona jest zakomentowna dziala sciezka zabij-peona a nie dziala niszcz-peona - czyli CALKOWITY BRAK LOGIKI I JAKIEJKOLWIEK KONSEKWENCJI axesmiley.png

I jeszcze pytanko czy w takiej sytuacji jaka mam czyli w pliku routingu sa dwie sciezki o tej samej nazwie "moja:" symfony nie powinno krzyczec o bledzie, jesli nie to jak sie zachowuje?
Czekam na wszelkie sugestie (tymczasem zostawie tak jak dziala czyli obie aktywne i niszcz-peona na koncu :seek:)
destroyerr
Pliki w formacie yaml są parsowane do tablicy asocjacyjnej. W przypadku routing.yml kluczami tej tablicy są nazwy poszczególnych tras. Wniosek jest prosty i oczywisty. Zresztą nie można mieć różnych tras po tą samą nazwą, nie wiem dlaczego po prostu nie dasz im różnych nazw. To, że ścieżka umieszczona na końcu pliku nie działa to jest oczywista oczywistość. Zobacz trasę default, ta trasa "łapie" wszystkie wywołania, które nie zostały "złapane" wcześniej. Tak więc jest pełna konsekwencja i jest to logiczne.

W przypadku dwóch ścieżek o tej samej nazwie symfony nie może krzyczeć o błędzie, wynika to z tego co napisałem na początku.
Sugestia pierwsza: czytaj dokumentację, a druga: zmień nazwę jednej z Twoich tras.
ceieneka
ha no wlasnie nie na localu tak robi a na homie default nie wylapuje wszystkich wywolan,
z tego co wiem kolejnosc sciezek robi roznice w symfony bo symfony uzywa pierwszej sciezki ktora pasuje wiec dlaczego przechodzi przez defaultowe i uzywa sciezki ktora jest na koncu wpisuje www.xxx.com.pl/zabij-peona powinna wylapac sciezka default-index jako module = zabij-peona i akcja:index a nie wylapuje tylko idzie do ostatniej sciezki

  1.  
  2. moja:
  3. url: /zabij-peona
  4. param: { module: main, action: web}
  5.  


i wywoluje module = main action = web

a jak sciezke zabij-peona zastapie niszcz peona (zastapie znaczy wszedzie gdzie jest zabij-peona zastepuje niszcz-peona) kasuje zawartosc katalogu cache i nie dziala nic tu wychwytuje defaultindex
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.