logické použití komponent v nette database

cvit84
Člen | 43
+
0
-

Zdravím Mám dvě tabulky. Jedna se jmenuje file a má strukturu

id int(11) Auto Increment
offer_id int(11)
path text
name varchar(255) Jméno Souboru
size int(11)
file_type varchar(255)

pak mám tabulku offer a ta ma strukturu

id int(11) Auto Increment
user_id int(11) autor
category_id int(11)
public_date date Datum zveřejnění
url text Odkaz
system_number varchar(255) Systémové číslo
offer_name varchar(255) Název zakázky
expiration_date datetime Lhůta podání
price double NULL částka
note text NULL Poznámka
institution_name varchar(255) Název zadavatele
offer_state_id int(11) NULL
create_at datetime datum vzniiku
hid tinyint(4) NULL s

public function renderDefault() {

      $offers = $this->dbManager->getDbOffer()->getOffer();

        //$offerId = $offer['id'];
        $files = $this->dbManager->getDbFile()->getFilesByOfferId($offerId);
        $this->template->offers = $offers;
        $this->template->files = $files;

  }

a nemůžu přijít na to jak do template hodit proměné tak aby tam bylo z tabulky offer offer_name a z tabulky file informace o souborech. Nabídka 1 a k tomu 3 soubory, nabídka 2 a k tomu třeba jeden soubor. S tím, že tabulka klič je v tabulce offer ID a v tabulce file je kličí offer_id

Ages
Člen | 128
+
0
-

Z kódu bohužel není vidět co vrací metoda: $this->dbManager->getDbOffer()->getOffer();, ale za předpokladu že to je Nette\Database\Table\Selection
Tak by to mohlo být nějak takto:

<!--default.latte-->
{foreach $offers as $offer}
	{$offer->name}:
		{foreach $offer->related('file') as $file}
			{$file->name} {sep}, {/sep}
		{/foreach}
	{sep}<br>{/sep}
{/foreach}

viz. dokumentace: https://doc.nette.org/…ase/explorer#…

bude fungovat pouze za předpokladu že máš v DB správně nastavené cizí klíče

Editoval Ages (2. 4. 2020 17:14)

cvit84
Člen | 43
+
0
-

Ages napsal(a):

Z kódu bohužel není vidět co vrací metoda: $this->dbManager->getDbOffer()->getOffer();, ale za předpokladu že to je Nette\Database\Table\Selection
Tak by to mohlo být nějak takto:

<!--default.latte-->
{foreach $offers as $offer}
	{$offer->name}:
		{foreach $offer->related('file') as $file}
			{$file->name} {sep}, {/sep}
		{/foreach}
	{sep}<br>{/sep}
{/foreach}

viz. dokumentace: https://doc.nette.org/…ase/explorer#…

bude fungovat pouze za předpokladu že máš v DB správně nastavené cizí klíče

Funguje.. díky