Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony2][PHP] Lepszy sposób na przekazywanie zmiennych do wielu szablonów
ZaqU
post 20.08.2014, 19:08:37
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Szybkie pytanko odnośnie pracy z Symfony2. Tworzę mój pierwszy większy projekt i chciałbym korzystać z najlepszych metod pracy z tym frameworkiem.

Mam kilka szablonów TWIG dla wielu różnych podstron. Każdy jest obsługiwany przez inny kontroler i w każdym includuje szablon odpowiedzialny za wyświetlanie menu. Chciałbym dołączyć do tego menu nazwę użytkownika, jeśli jest on zalogowany. Muszę zatem przekazać w jakiś sposób do szablonu nazwę użytkownika i robić to w każdym kontrolerze. Jaki jest najlepszy sposób na rozwiązanie tego problemu?

Pytam, ponieważ umieszczanie za każdym razem w obiekcie Response odpowiednich zmiennych:
  1. return $this->render('MyFirstBundle:Default:index.html.twig', array("user" => "ZaqU"));

jest bardzo nieeleganckie.

Czy można to zapisać w nieco inny sposób?
Go to the top of the page
+Quote Post
pitu
post 20.08.2014, 19:10:38
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


  1. {% if is_granted("ROLE") %}
  2. {{ app.user.username }}
  3. {% endif %}


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
skowron-line
post 20.08.2014, 20:47:19
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


w szablonie w miejscu menu wywolaj akcje odpowiedzialna za tworzenie menu.
  1. {{ render(controller('AcmeBundle:Default:index') }}


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
by_ikar
post 20.08.2014, 20:54:10
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Najlepszym sposobem będzie utworzenie zmiennej globalnej. W config.yml możesz ustawić jakiś service jako zmienna globalna i mieć dostęp do niej w każdym szablonie. http://symfony.com/doc/current/cookbook/te..._variables.html
Go to the top of the page
+Quote Post
ZaqU
post 20.08.2014, 21:14:26
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Dziękuję wszystkim za pomoc, wybrałem sposób skowron-line'a jako ten który będzie najbardziej odpowiedni dla tego problemu smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 06:52