usb2.0
6.04.2012, 10:04:38
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 %}
No witam,
Albo tak:
$session = $this->getRequest()->getSession();
return array('sessions' => $session->all());
{% for item in sessions %}
{{ item }}
{% endfor %}
albo tak (chyba lepsza opcja):
{% for item in app.session.all %}
{{ item }}
{% endfor %}
Pozdrawiam l3l0
usb2.0
6.04.2012, 14:13:46
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 -.-
toffiak
6.04.2012, 15:22:11
To nie jest zadanie dla twiga, mając dane o produktach pobierz je i za pomocą kontrolera przekaż je do widoku.
usb2.0
6.04.2012, 15:30:37
no zrobiłem to jakoś tak, ale to chyba nie jest dobre rozwiązanie, no pomijając fakt że działa
$session = $this->getRequest()->getSession();
foreach( $session->all() as $item )
{
$repository = $this->getDoctrine()->getRepository('product');
$Query = $repository->createQueryBuilder('a')
->where("a.slug = :slug")
->setParameter('slug', $item)
->getQuery();
$result = $Query->getResult();
}
return array('results' =>$results);
toffiak
6.04.2012, 15:38:31
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.
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.