Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework][ZF2][ZendFramework2] Przekazywanie zmiennych do layoutu
Wasper
post 20.03.2013, 23:06:47
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 18.09.2011

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


Da sie przekazac zmienna bezposrednio do layoutu?
Ze do template-u to wiem.
Ale przykladowo mam gorne menu w ktorym chce oznaczyc aktywny element... i moge zrobic template, tam przekazac zmienna aktywnego elementu i wrzucic chociazby w konstruktorze kontrolera jako element staly.
Ale gdybym takie menu chcial wpisac w layout to jak przekazac zmienna aktywnego elementu bezposrednio do layoutu?
Bo jedyna zmienna jaka tam mam to $this->content;
Go to the top of the page
+Quote Post
karolrynio
post 21.03.2013, 13:41:36
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 25
Dołączył: 2.02.2009

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


Spróbuj w kontrolerze czegoś takiego:

  1. $this->layout()->zmienna = 'test;

Go to the top of the page
+Quote Post
amii
post 21.03.2013, 21:00:07
Post #3





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Jeśli potrzebujesz takiej zmiennej globalnie do rozprowadzania w widokach np. dane z logowania usera to polecam takie rozwiązanie z którego sam korzystam:

1. Tworzysz sobie nadrzędny kontroler z którego inne dziedziczą dla jasności umieszczasz go w library\My czyli katalogu na twoje biblioteki
2. W tym kontrolerze tworzysz sobie takie coś:
  1. public function preDispatch()
  2. {
  3. //tutaj jakieś działania na zmiennych
  4. $this->view->login = $identity; //ta zmienna jest przekazywana do layout
  5. }

3. Co do górnego menu jako, że jest element wykorzystywany w layout ale potrzebujący zmiennych, najlepiej zdefiniować go jako partial-a a następnie przekazać do layout z potrzebnymi zmiennymi, jeśli zastosowałeś metodę powyżej i stworzyłeś partial view dla menu to jedyne co muszisz zrobić to:
4. Plik layout.phtml
  1. <!--left content sidebar-->
  2. <?php echo $this->partial('panel.phtml', array('login' => $this->login)) ?>
  3. <!--left content sidebar-->


Ten post edytował amii 21.03.2013, 21:01:04


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
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: 13.06.2025 - 10:18