Nefunkční joinování (cizí klíče)

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

Už nevím čím to může být způsobené, proč pořád Tracy hází chybu:

No reference found for $users->roles

Obě tabulky jsou innoDb. Pro představu tabulek přikládám obrázek z MySQL Workbench.

Link

Přikládám ještě KEY_COLUMN_USAGE z information_schema


CONSTRAINT_CATALOG - def
CONSTRAINT_SCHEMA - d63812_test
CONSTRAINT_NAME - users_ibfk_2
TABLE_CATALOG - def
TABLE_SCHEMA - d63812_test
TABLE_NAME - users
COLUMN_NAME - role_id
ORDINAL_POSITION - 1
POSITION_IN_UNIQUE_CONSTRAINT - 1
REFERENCED_TABLE_SCHEMA - d63812_test
REFERENCED_TABLE_NAME - roles
REFERENCED_COLUMN_NAME - role_id

Cache jsem zkoušel mazat a bez úspěchu.

Ještě SQL dotaz

$this->db->table('users')->where('users.user_id', $login)->select('users.*, roles.*')->fetch();

$this->db->table('users')->where('users.user_id', $login)->select('users.*, :roles.*')->fetch();

Vyzkoušel jsem různě kombinovat, hledat na internetu, nic nepomohlo.

Třídy, které náleží databázím jsem vůbec neměnil.

David Matějka
Moderator | 6445
+
0
-

pro smer „to one“ neni dulezity nazev cilove tabulky, ale nazev spojovaciho sloupecku (respektive substring), takze misto roles pouzij pouze role, vice viz doc: https://doc.nette.org/…ase/explorer

Martk
Člen | 661
+
0
-

Díky, na tuhle stránku jsem ještě nenarazil, podívám se. Zatím to považujte za vyřešené.