Symfony2 - MVC - Jak przekazać obiekt do layoutu

Symfony2 - MVC - Jak przekazać obiekt do layoutu
PS
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 9 lat
0

Cześć,

Przepraszam, że tak enigmatycznie trochę zagaiłem w temacie posta ale nie umiałem inaczej.

Problem najprawdopodobniej jest znany ale nie wiem czy powinien znajdować się w kategorii NEWBIE. Chodzi mi o to, że chce zrobić rozszerzalne/dynamiczne menu i chciałem abym mógł generować je w każdym widoku. Nie chce powielać tej operacji wszędzie i jakoś przekazać obiekt do widoku/layoutu i tam stworzyć menu. Niestety w tym silniku twig nie bardzo wiem jak to zrobić, czytałem trochę dokumentacji ale nic to nie dało :/ tzn nic nie znalazłem :). Być może za szybko to przeleciałem, w każdym razie prośba o podpowiedź. Mam wrażenie, że problem jest raczej już znany.

JK
Ale jaki obiekt chcesz przekazać? Pokaż kod.
PS
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 9 lat
0

Sorki , jeszcze nie zdążyłem :) ( popełniłem błąd sorkas ) odpisać.

Chodziło mi o to że wyciągam sobie z bazy dane o polach menu i chciałbym żeby były widoczne nie zależnie od controlera, chciałem umieścić np w layoucie. Dowiedziałem się, że można coś takiego zrobić za pomocą globalnych zmiennych, które jak widać mogą być referencją do obiektów, wtedy są widoczne we wszystkich template'ach. W silniku twig robi się to tak

Kopiuj
$twig = new Twig_Environment($loader);
$twig->addGlobal('text', new Text());

a teraz pod tym linkiem znajduję się implementacja

http://symfony.com/doc/current/reference/dic_tags.html#reference-dic-tags-twig-extension

edytowany 2x, ostatnio: PiotroSan
kchteam
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 8 lat
  • Lokalizacja:Tychy
  • Postów:155
1

Napisz sobie własne rozszerzenie do twiga, nadpisz metodę getGlobals.
Następnie zarejestruj rozszerzenie jako serwis i możesz korzystać ze zmiennej globalnej w twig-u.

Coś jak poniżej:

Kopiuj
public function getGlobals()
{
	return array(
		'menu' => array('element1', 'element2')
	);
}

Więcej szczegółów tutaj:
http://symfony.com/doc/current/cookbook/templating/twig_extension.html

[Adrian]


Jeden zespół, tysiące możliwości!
edytowany 2x, ostatnio: kchteam
PK
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:51
0
PS
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 9 lat
0

kchteam, właśnie tak to zrobiłem, ale dzięki zajrzałem tu niestety dopiero teraz

kchteam
cieszę się że mogłem pomóc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.