Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]routing.yml
Forum PHP.pl > Forum > PHP > Frameworki
władek22
Posiadam wersje sandbox, stworzyłem nowy moduł o nazwie modul.
Skonfigurowałem plik routing.yml.

#my rules
costam:
url: /modul
param: { module: modul, action:index }
# default rules
homepage:
url: /
param: { module: default, action: index }

default_symfony:
url: /symfony/:action/*
param: { module: default }

default_index:
url: /:module
param: { action: index }

default:
url: /:module/:action/*

po wpisaniu localhost/sf_sandbox/web/frontend_dev.php/modul
Pokazuje sie komunikat że nie można znaleźć tej stony.
Co zrobiłem nie tak ?
AxZx
ważne są spacje. usuń wszystko z katalogu cache (polecenie symfony cc)
władek22
Nie podziałało, a jezeli chodzi o spacje to zastąpiłem je tutaj gwiazdkami żeby było lepiej widać.
#my rules
costam:
**url:***/modul
**param:*{ module:*modul,*action:*index*}
# default rules
homepage:
**url:***/
**param:*{*module:*modul,*action:*index*}

Dodam że to wszystko chodzi na xp i iis. Dodałem moduł ISAPI/REwrite HElicon Tech.
Może ten moduł nie działa tak jak powienien questionmark.gif
-=Peter=-
A napewno masz moduł o nazwie "modul", a w nim akcję o nazwie "index"? tongue.gif (tak dla pewności pytam) Może wpisujesz localhost/sf_sandbox/web/frontend_dev.php/modul/ (z ukośnikiem na końcu, bo ta regułka co wpisałeś w routing.yml nie uwzględnia ukośników na końcu)
władek22
Mam taki moduł, zresztą jak wpiszę localhost/sf_sandbox/web/frontend_dev.php to z taką konf. jaka podałem działa ok natomiast gdy wpisuje localhost/sf_sandbox/web/frontend_dev.php/modul nie działa więc chyba rewrite nie działa !

w httpd.ini mam
[ISAPI_Rewrite]

# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]


# we skip all files with .something except .html
RewriteCond URL /sf_sandbox/.*\..+$
RewriteCond URL (?!/sf_sandbox/.*\.html$).*
RewriteRule /sf_sandbox/(.*) /sf_sandbox/$1 [L]


# we keep the .php files unchanged
RewriteRule /sf_sandbox/(.*\.php)(.*) /sf_sandbox/$1$2 [L]


# finally we redirect to our front web controller
RewriteRule /sf_sandbox/(.*) /sf_sandbox/index.php [L]

w settings.yml

all:

.settings:
relative_url_root: /sf_sandbox
path_info_key: HTTP_X_REWRITE_URL


Wie ktoś czy muszę dodać coś jeszcze questionmark.gif żeby to działało poprawnie questionmark.gif
AxZx
a po co Ci taka reguła? przecież masz już ustawioną regułę domyślną.
zresztą to co jest w pliku httpd.ini nie ma raczej powiązania to co jest w pliku routing.yml

zobacz czy jakikolwiek rounting Ci działa. tzn nie ustawiaj nic w routing.yml tylko stwórz jakiś moduł z akcjami i zobacz czy to działa.
władek22
Dlatego w taki sposób ustawiłem reguły żeby właśnie sprawdzić czy to wogóle zadziała.

po wpisaniu ..index.php wywołuje się reguła homepage: i wykonuje się akcja executeIndex poprawnie.
Natomiast jeżeli wpisze index.php/modul pokazuje ze nie ma takiej strony. Dlatego umieściłem plik httpd ponieważ wydaje sie ze serwer www zle interpretuje adres url, zdaje sie nie byc to wina konf symfony.

Tak prawde mowiąc to się poddałem i zainstalowałem WAMP-a . Tutaj routing działa poprawnie natomiast jest inny problem.

Nie moge niczego uruchomic w srodowisku dev. Po wpisaniu adresu ..frontend_dev.php
pojawia sie error
Fatal error
: Unsupported operand types in C:\wamp\www\sf_sandbox\lib\symfony\util\Spyc.class.php on line 667
ktoś może miał podobny problem ?
AxZx
tak, u mnie przeważnie to występuje jak się pomylę w konfiguracji routingu albo czegoś innego.
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.