Autor Zpráva
Leo3
Profil
Ahojte, mal by som otazku ohladom adresy v prehliadaci. Pouzivam framework Symfony 2.
Da sa nejako v Controlleri v routovani nastavit uzivatelsky privetivejsia adresa? Mam na mysli
namiesto
www.webpage.sk/spravy/5
aby zobrazilo
www.webpage.sk/spravy/sprava-5

V Controlleri to vyzera nasledovne:
  /**
  * @Route("/spravy/{msg}", name="vyberSpravu")
  */
  public function vyberSpravuAction(Request $request, $msg) {
    ...
  }

Nic taketo nefunguje:
  /**
  * @Route("/spravy/sprava-{msg}", name="vyberSpravu")
  */
  public function vyberSpravuAction(Request $request, $msg) {
    ...
  }
Da sa to nejako v Route nastavit? Nemozem to najst na webe. Alebo to treba nastavit ako tzv. "pekne adresy" v .htaccess?
Keeehi
Profil
Myslím, že přesně takto by to fungovat mělo. Nemůžeš mít chybu někde jinde?
Leo3
Profil
Vlastne ano, v tom pripade to funguje.

Ked je vsak hned za prvym lomitkom premenna a pred nu chcem dat text, tak to nejde.
  /**
  * @Route("/stranka-{page}", name="homepage", defaults={"page"=1}, requirements={"page": "\d+"})
  */
  public function pageAction(Request $request, $page)
  {
    ...
  }
  
Cize po nacitani adresy www.webpage.sk/ by sa mala nacitat stranka www.webpage.sk/stranka-1

No pise to chybu: No route found for "GET /"
A ked zadam do prehliadaca adresu www.webpage.sk/stranka-1 tak to taktiez vypise tu chybu.

Takto to funguje:

  /**
  * @Route("/{page}", name="homepage", defaults={"page"=1}, requirements={"page": "\d+"})
  */
  public function pageAction(Request $request, $page)
  {
    ...
  }
Cize o co mi ide? Chcel by som medzi / a {page} umiestnit text "stranka-".
Keeehi
Profil
Jsou to dva rozdílné problémy. Prvně bych začal tím že s Route("/stranka-{page}", name="homepage", defaults={"page"=1}, requirements={"page": "\d+"}) nefunguje www.webpage.sk/stranka-1.
To by totiž taky mělo bez problémů fungovat. Ověř toto. Je možné, že jak jsi se v tom hrabal, tak jsi někde něco nastavil a pak na to zapomněl a proto to nefungovalo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: