Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Twig wykorzystanie pętli?
Fred1485
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Witam,

Chcę za pomocą szablonów Twiga (podstawy znam) sobie wypisać na ekran tekst, nie wiem jak to najlepiej wytłumaczyć o co mi chodzi, ale przykładowo, mam podzielone linki na kategorie: aktywny, nieaktywny, inne
Docelowo muszę to zrobić za pomocą tablicy (chyba innego sposobu Twig nie uzna).

Link aktywny przechowuje url i value,
Link nieaktywny samo value,
Link inny url i value,

  1.  
  2. $active = array('url' -> 'jakis_url', 'value' => 'tekst');
  3. $inactive = array('value' => 'tekst');
  4. $other = array('url' -> 'jakis_url', 'value' => 'tekst');
  5.  
  6. // I teraz samo sedno sprawy bo w każdym rodzaju może się znajdować dowolna ilość linków.
  7. //Wszystko dodając do siebie
  8.  
  9. $output = array('active' => array($active1,$active2,$active_n), 'inactive' => array($inactive1,$inactive2,$inactive_n), 'other' => array($other1,$other2,$other_n),


Jak widać stworzyła się tablica 3-wymiarowa i teraz to wszystko trzeba wyrenderować (w szablonie raczej musi być pętla bo jak inaczej wszystkie rodzaje linków po kolei wyrednerować)

Jeśli jest ktoś kto dotarł do tego momentu i wie o co mi chodzi to jak trzeba to rozwiązać, może lepiej da się to zrobić sad.gif

P.S Jest to schemat prostego navigatora więc tych linków tyle trzeba wyświetlać
P.S Ja uważam że to co ma iśc na ekran powinno być w jednej tablice (tak??)

Pozdrawiam

Ten post edytował Fred1485 27.04.2015, 15:27:34


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


A nie mozesz poprostu z tych cudactw zrobic jednej tablicy i pojsc petla w szablonie?
Go to the top of the page
+Quote Post
Fred1485
post
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


No właśnie mogę i chcę tylko brak mi wiedzy jak to zrobić, podstawową zasadę pętli znam ale nie wiem jak strukturę w tablicy najlepiej zrobić i jak się do tego odwołać sad.gif

Ten post edytował Fred1485 27.04.2015, 16:23:49


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
rad11
post
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Do tablicy o takiej strukturze o ktorej mowisz lecisz w ten sposob:

  1. foreach($output as $k => $v){
  2.  
  3. foreach($v as $kk => $vv){
  4.  
  5.  
  6. foreach($vv as $kkk => $vvv){
  7.  
  8. var_dump($vvv);
  9.  
  10. }
  11.  
  12. }
  13.  
  14. }


Ten post edytował rad11 27.04.2015, 18:45:19
Go to the top of the page
+Quote Post
Fred1485
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Ale zaraz, zaraz co ty teraz chcesz wytłumaczyć.
Mi chodzi o bardziej merytorykę, czy taka tablica 3-wymiarowa w przypadku korzystania z Twiga jest słuszna, czy lepiej to zrobić inaczej, jak taką tablicę stworzyć to wiem z odwołaniem w szablonie już sobie poradziłem (chyba).

EDIT...


Który sposób będzie lepszy (a może to bez różnicy w wydajności, spójności etc)

  1. $output = [
  2. 'active'=>[
  3. 'url1'=>'wartosc1',
  4. 'url2'=>'wartosc2',
  5. 'url3'=>'wartosc3',
  6. ],
  7. 'inactive'=>[
  8. 'url1'=>'wartosc1',
  9. 'url2'=>'wartosc2',
  10. 'url3'=>'wartosc3',
  11. ]
  12. ];
  13.  
  14. $output = [
  15. 'active'=>[
  16. ['url' => 'jakis_url', 'wartosc' => 'jakas_wartosc'],
  17. ['url2' => 'jakis_url2', 'wartosc2' => 'jakas_wartosc2']
  18. ],
  19. 'inactive'=>[
  20. ['url' => 'jakis_url', 'wartosc' => 'jakas_wartosc'],
  21. ['url2' => 'jakis_url2', 'wartosc2' => 'jakas_wartosc2']
  22. ]
  23. ];


Przy zaznaczeniu że url będzie unikalny zawsze, czy ma to jakieś znaczenie, który sposób lepiej wybrać?

Ten post edytował Fred1485 29.04.2015, 18:33:07


--------------------
  1. echo 'I was trying';
  2. die ();
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 Aktualny czas: 19.08.2025 - 13:45