Jak efektivně předat do view data ze 2 závislých tabulek?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Croc
Člen | 270
+
0
-

Zdravím,
mám tabulku Tab1 a Tab2 (vazba 0:N), na stránce potřebuju vykreslit například 3 záznamy z Tab1, ale každý z těchto záznamů může mít 0-N záznamů v Tab2, které také potřebuji vykreslit.

Problém je, že úplně nevím jak toho efektivně docílit. Vykreslení dat z Tab1 není problém, ale jak si „připravit“ data z tabulky Tab2, aby se vykreslily např. takto:

Tab1 - záznam1
	Tab2 - záznam1-1
	Tab2 - záznam1-2
	Tab2 - záznam1-2
Tab1 - záznam2
	Tab2 - záznam2-1
atd...

Díky

ali
Člen | 342
+
0
-

No pokud pouzivas doctrine, tak treba nejak takto:

{foreach $tab1 as $data1}
 ...
 {if $tab1->tab2 !== NULL}
  {foreach $tab1->tab2 as $data2}
   ...
  {/foreach}
 {/if}
{/foreach}

Editoval ali (22. 11. 2015 10:20)

Croc
Člen | 270
+
0
-

Doctrine nepoužívám, používám Nette/Database.

Editoval Croc (22. 11. 2015 10:27)

F.Vesely
Člen | 369
+
0
-

Pouzij related() viz dokomentace

CZechBoY
Člen | 3608
+
0
-

Jestli chceš efektivně tak to najoinuj. Potom v sablone kontroluj jestli vypisujes data z hlavní tabulky nebo z dodatecny.

Croc
Člen | 270
+
0
-

Díky, o tomhle vím, ale právě nevím jestli je úplně v pořádku toto použít v šabloně (proto se taky ptám :-) ), jestli to není „prasárna“. Protože když by pak docházelo k nějakým úpravám, tak bych musel pátrat kde to v šabloně mám použíté. Nebo se mýlím?

Editoval Croc (22. 11. 2015 11:00)

Croc
Člen | 270
+
0
-

Zatím to nechám v šabloně, kdyby mi to začalo někdy vadit, můžu to předělat. Díky za rady :)

{foreach $records as $record}
 //...
	<div class="zoom-gallery">
		{foreach $record->related('image_table','id_record') as $image}
			<a n:img="$user->guid . '/' . $record->id_record . '/' . $image->name" data-source="" title="{$image->description}" >
				<img n:img="$user->guid . '/' . $record->id_record . '/' . $image->name, '200'"  class="img-thumbnail">
			</a>
		{/foreach}
	</div>
{/foreach}