Select dotaz (relace 1:1) Nette\Database

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

Zdravim,

bojuju tu nakou dobu s tim, jak slozit pomoci notorm integrovaneho do nette dotaz, ktera ma za ukol de facto jen spojit zaznamy v tabulce, ktera je v relaci 1:1.

Priklad:
Mam tabulku user s povinnymi udaji a tabulku other s dodatecnymi.

Pomoci unikatniho emailu najdu 1 zaznam v user:

<?php

        $row = self::$db->table('user')
            ->where('email', $email)
            ->fetch();

// a pak udelam

$referenced = $row->related('other');

?>

Jakmile se ale snazim pristoupit k nejake polozce pres $referenced->sloupec, tak dostanu:

Cannot read an undeclared property Nette\Database\Table\GroupedSelection::$sloupec.

Neco delam ocividne spatne a i kdyz jsem prochazel nejaka fora, nedari se mi najit spravne reseni. Mimo to, kdyz uz jsem u toho, rad bych videl takove reseni, ktere by mi pak vratilo row, ktery bude obsahovat jak sloupce z prvni tabulky tak z druhe zaroven, pokud je to mozne, za predpokladu, ze neni shoda ve jmene nejakeho sloupce.

Diky za pomoc.

Jirda
Člen | 103
+
0
-

PROBLÉM VYŘEŠEN

Korektně:

<?php

        $row = self::$db->table('user')
            ->where('email', $email)
            ->fetch();

// a pak udelam

$referenced = $row->related('other')->fetch();

?>

Přísahal bych ale, že jsem to takhle včera večer zkoušel a nešlo:o)))

hrach
Člen | 1838
+
0
-

pokud je vztah 1:1 používáš pak echo $row->other->column;

vrana
Člen | 131
+
0
-

V NotORM se to dá získat i jedním dotazem $db->user()->select("user.*, other.*").