Mysql – získání dat z relace, klíče se nepárují

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

Ahoj,
Mám v databázi tabulku „user“, kde mám sloupce id,username,password,profil_id

profil_id odkazuje na PK v tabulce „profil“.

tabulky jsou innodb a cizí klíče jsou nastaveny správně.

V aplikaci pak je

$row = $this->database->table('user')->where('username', $username)->fetch();

čímž získám ActiveRow.
Nyní chci získat položku z tabulky „profil“ přes relaci ale tam se to chová divně.

$row->profil->id

vypíše exception: Cannot read an undeclared column „profil“.

$row->ref('profil')->id

vypíše exception: Trying to get property of non-object (neboť $row->ref(‚profil‘) je null)

$row->ref('profil_id')->id

vypíše správnou hodnotu – ačkoliv se jedná o výkřik do tmy neboť podle dokumentace má stačit „profil“ ne „profil_id“

$row->ref('profil','profil_id')->id

vypisuje hodnotu správně jak se dá očekávat.

Jak je to tedy s tím párováním klíčů? dokumentace odkazuje na joining expressions ale tam je 404, bylo párování klíčů vyhozeno z frameworku a je tedy možné k relacím přistupovat pouze přes ref(), nebo tam je zase nějaká další klička?

David Matějka
Moderator | 6445
+
+1
-

zkousil si smazat cache?

mroz123
Člen | 6
+
0
-

Díky, vypadá to že to pomohlo. Co jsem tak teď pročítal, tak to vypadá, že při změnách schématu v DB dělá cache často problémy. Příště alespoň vím kam šáhnout :)