Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]Sesja w twigu
usb2.0
post
Post #1





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

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


Witam,
otóż mam takie pytanie, na które niby znalazłem odpowiedź ale niepotrafie tego chyba wykorzystać

Powiedzmy że dodaje sobie do sesji coś, nie ważne co, grunt żeby w niej było, nawet zwykłe stringi
i chciałbym w widoku - twigu jakiejś akcji, wyświetlić te wszystkie dane z sesji
no i dowiedziałem się o app.session, które chyba poniekąd jest rozwiązaniem, ale totalnie nie wiem dobrać się do konkretnych danych.
Ewentualnie jakimś forem to wszystko z sesji wyświetlić może?
Pozdrawiam.

a no wiem że można wyświetlić konretną wartość korzystająć pisząć {{ app.session.get(key) }}, ale ja chce wszystkie -.-


znalazłem rozwiązanie jeśli może ktoś by był zainteresowany

w kontrolerze
$session = $this->getRequest()->getSession()
return array('session' => $session);

w twigu

{% for item in session.all %}

{{ app.session.get(item) }}

{% endfor %}

Ten post edytował usb2.0 6.04.2012, 10:04:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
l3l0
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

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


No witam,

Albo tak:

  1. $session = $this->getRequest()->getSession();
  2. return array('sessions' => $session->all());


  1. {% for item in sessions %}
  2. {{ item }}
  3. {% endfor %}


albo tak (chyba lepsza opcja):

  1. {% for item in app.session.all %}
  2. {{ item }}
  3. {% endfor %}


Pozdrawiam l3l0

Ten post edytował l3l0 6.04.2012, 10:54:17
Go to the top of the page
+Quote Post
usb2.0
post
Post #3





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

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


z kontynuując temat twiga,

dajmy na to że mam w sesji slugi do konkretnych produktow, no i w koszyku jak chciałbym wyświetlić oczywiście nazwe produktu cene etc
jak sobie z tym poradzić?
da się jakoś w twigu pisać funkcje które obsłużą ORM i zwrócą konkretne dane, coś w stylu
{{ getPrice( slug ) }}
poszukałbym w dokumentacji, ale niestety takowej w tym temacie brakuje -.-



Ten post edytował usb2.0 6.04.2012, 14:15:37
Go to the top of the page
+Quote Post
toffiak
post
Post #4





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


To nie jest zadanie dla twiga, mając dane o produktach pobierz je i za pomocą kontrolera przekaż je do widoku.
Go to the top of the page
+Quote Post
usb2.0
post
Post #5





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

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


no zrobiłem to jakoś tak, ale to chyba nie jest dobre rozwiązanie, no pomijając fakt że działa
  1. $session = $this->getRequest()->getSession();
  2. $results = array();
  3. foreach( $session->all() as $item )
  4. {
  5. $repository = $this->getDoctrine()->getRepository('product');
  6. $Query = $repository->createQueryBuilder('a')
  7. ->where("a.slug = :slug")
  8. ->setParameter('slug', $item)
  9. ->getQuery();
  10. $result = $Query->getResult();
  11. array_push($results, $result);
  12. }
  13.  
  14. return array('results' =>$results);


Ten post edytował usb2.0 6.04.2012, 15:31:05
Go to the top of the page
+Quote Post
toffiak
post
Post #6





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Lepiej by było stworzyć własną metodę w repozytorium o nazwie na przykład getAllBySlugs() gdzie podawałbyć tablicę ze slugami a w odpowiedzi metoda zwracałaby pasujące obiekty.

Metoda powinna pobierać pasujące rekordy w jednym zapytaniu, wszystkie na raz, wykorzystaj where in.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 06:46