No reference found – nette database join

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

Vím, že to tu již bylo omílané několikrát, ale raději se zeptám, než abych nad tím strávil další hodiny…

Mám 2 tabulky – Pacient a Operace, kde pacient může mít více operací

Pacient
id
cele_jmeno
rodne_cislo
kod_pojistovny


Operace
id
nazev
pacient_id

Zkoušel jsem napsat join dvou tabulek v nette database, ale vždy to skončilo:
Nette\Database\Reflection\MissingReferenceException No reference found for …

př.
//getTable je Operace
$this->getTable()->where(‚pacient.cele_jmeno=?‘, „Marek“);

No reference found for $operace->pacient

Přitom podle příkladů bych řekl, že jsem udělal stejný příklad jen s jinými názvy…
$selection = $context->table(‚book‘);
$selection->where(‚author.name LIKE ?‘, ‚%Jon%‘);

Nějaké rady?
Díky

Oli
Člen | 1215
+
0
-

Máš správně nastavený sloupce v tabulce? Tabulka musí být InnoDB a musíš mít v tabulce operace cizí klíč.

David Matějka
Moderator | 6445
+
0
-

A precti si, prosim, jak formatovat kod

mara11
Člen | 42
+
0
-

Bylo to tím, že designer v phpmyadmin mi nenastavil cizí klíč, ačkoli v tom designeru byl, musel jsem to ručně nastavit v SQL, po tom již vše fungovalo… díky. :-)

Oli
Člen | 1215
+
0
-

Zkus adminer, o hodne lip se pouziva a prijde me o dost prehlednejsi. ;-)