Mysql – JOINS → získání dat z propojovacích tabulek

Shoxy
Člen | 37
+
0
-

Dobrý den,
ještě se moc neovládám Database Explorer tak bych potřeboval trošku popostrčit.
Mám databázi : Screenshot
5 tabulek: Reports,Documents,Equipments a 2 propojovací tabulky Rep_Doc a Rep_Equ
Z tabulky Reports potřebuji získat všechny data a dále názvy ( z DocumentName a EquipmentName ) z tabulek Documents a Equipments na základě ReportID, které je v propojovací tabulce a dále je předat šabloně.
Děkuji za pomoc!

David Matějka
Moderator | 6445
+
+1
-
$reports = $database->table('reports');
foreach ($reports as $report) {
	//tady uz mas k dispozici treba `$report->Name`
	foreach ($report->related('rep_doc') as $doc) {
		echo $doc->Document->DocumentName;
	}
	foreach ($report->related('rep_equ') as $equipment) {
		echo $equipment->Equipment->EquipmentName;
	}
}

kdyz to potrebujes do sablony, tak si tam predej ty reporty a ty foreache prepises na latte makra, jinak se nic nezmeni

Shoxy
Člen | 37
+
0
-
	public function renderShow($id){
$reports = $this->database->table('reports')->get($id);
foreach ($reports->related('rep_doc.ReportID') as $doc) {
    echo $doc->Document->DocumentName."<br>";
}
foreach ($reports->related('rep_equ.ReportID') as $equipment) {
    echo $equipment->Equipment->EquipmentName."<br>";
}

 $this->template->show = $reports;


	}

Děkuji! Nakonec jsem to trošku upravil a získal to co jsem potřeboval. To, že to mohu poslat rovnou do šablony myslíš takto?

$this->template->document = $reports->related('rep_equ.ReportID');
$this->template->equipment = $reports->related('rep_equ.ReportID');
$this->template->show = $reports;

Nebo se to dá poslat všechno najednou?

David Matějka
Moderator | 6445
+
0
-

jj, kdyz tam mas jen jeden report, tak to muzes poslat do sablony takhle, jak to mas.