Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][SF2][Symfony2]Problem z pobraniem nazwy routa.
Forum PHP.pl > Forum > PHP > Frameworki
soszin
Cześć,

Posiadam w swojej aplikacji MainController po którym dziedziczą inne kontrolery.

Chcialem aby w konstruktorze definiowała mi sie aktualna nazwa routa. co potem w bede wykorzystywał do podswietlania odpowiedniej pozycji w menu (i nie tylko.)
użyłem:
  1. public $currentRoute;
  2.  
  3. public function __construct() {
  4. $currentRoute = $this->container->get('request')->get('_route');
  5. $this->currentRoute = $currentRoute;
  6. }
  7.  
  8. Próbowałem tez:
  9. $currentRoute = $this->get('request')->get('_route');


Otrzymuje błłąd:
Cytat
Error: Call to a member function get() on a non-object in moja sciezka do pliku. blad w linijce: $currentRoute = $this->container->get('request')->get('_route');

Jeśli sie nie mylę to ten zapis jest poprawny.

Próbowałem tez utworzyc metode ktora zwracalaby nazwe route'a i inicjowałem ją w konstruktorze (np. $this->getCurrentRoute), która zawierała te linijki z konstruktora.

Czy ktoś mi może wskazać błąd, lub polecić inne rozwiązanie??

Wiem że bezposredno w szablonie moge pobrac aktualna nazwe Routa, jednak wolalbym tak jak wyżej podałem.

Pozdrawiam
ziolo
Przecież w template dostęp do obiektu request(app.request) jest bardzo prosty.
Tu masz przykład.
http://stackoverflow.com/questions/9378714...n-twig-template


A twoje rozwiązanie nie działa. Bo próbujesz w konstrukturze obiektu odwołać się obiektu containera $this->container.
A obiekt Containera jest dopiero póżniej wstrzykiwany setterem przez Symfony .
W konstruktorze $this->container jest nullem i daltego zgłasza Ci błąd: "function on a non-object"
404
http://stackoverflow.com/questions/1117919...ony2-controller - temat sprzed dwóch lat, ale może Cię nakieruje.
http://symfony.com/blog/new-in-symfony-2-4-the-request-stack - tutaj też coś jest.
soszin
To że mogę w twigu się odwołać do obiektu request to wiedzialem. jednak mi zalezy na kontrolerze.
Ziolo dzieki za wyjaśnienie że Request jest wstrzykiwany dopiero poźniej, to faktycznie wszystko wyjaśnia.

404 - Drugi link też jest przydatny!

Dzięki Panowie.
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.