Nette\Database spojení tří tabulek M:N:O

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

Dobrý den,

mám následující databázi . Jsou zde 2 spojovací tabulky, abych dosáhl vztahu M:N:O a mohl mít pro každý pokoj vlastní datum příjezdu a odjezdu. Chtěl bych v šabloně pro všechny pokoje vypsat všechny rezervace, ke každé vypsat příjezd, odjezd, poznámku a jména všech ubytovaných zákazníků na daném pokoji.

Zatím mám jen:

<table class="rooms">
  <tr n:foreach="$rooms as $room">
    <th>
      {$room->name}

      {foreach $room->related('reservation_room') as $reservation_room}
        {$reservation_room->arrival}
      {/foreach}
    </th>
  </tr>
</table>

Jak se dostanu až k tabulce se zákazníky?

JakubTN
Bronze Partner | 49
+
0
-

Nestacilo by stlpec guest_id z tabulky reservation_room_guest hodit do tabulky reservation_room?

Usetril by si jednu tabulku.

A v sablone potom:

<table class="rooms">
  <tr n:foreach="$rooms as $room">
    <th>
      {$room->name}

      {foreach $room->related('reservation_room') as $reservation_room}
        {$reservation_room->arrival}

	{$reservation_room->guest->firstname}

	...
      {/foreach}
    </th>
  </tr>
</table>

Editoval JakubTN (31. 7. 2012 16:46)

michal.lohnisky
Člen | 64
+
0
-

Příjez a odjezd je pro celý pokoj stejný, takže když bych to udělal, musel bych tato data duplikovat do každého záznamu.

vvoody
Člen | 910
+
0
-
<table class="rooms">
	<tr n:foreach="$rooms as $room">
		<th>
		{$room->name}
		{foreach $room->related('reservation_room') as $reservation_room}
			{foreach $reservation_room->related('reservation_room_guest') as $reservation_room_guest}
				{? $guest = $reservation_room_guest->guest}
				{$guest->firstname}
				{$guest->surname}
			{/foreach}
		{/foreach}
		</th>
	</tr>
</table>

ale bojim sa ze budes mat tento problem, ak hej tak skus https://github.com/…-refactoring je to myslim 2.1dev s db fixami Hracha.

Btw guest bude kazda jedna ubytovana osoba? Len ci dobre chapem tu strukturu databaze.

Editoval vvoody (31. 7. 2012 18:16)

michal.lohnisky
Člen | 64
+
0
-

Ano. Super, funguje. Nedošlo mi, že tam musí být ještě „->guest“.