propojení tabulek → RELATED u tabulky USER

AZJOL
Člen | 34
+
0
-

Zdravím, chtěl bych propojit tabulku USER s tabulkou UNIT, protože v aplikaci chci vypsat i společnost, ke které je uživatel vázán.

v layoutu klasicky vypíšu LOGIN pomocí příkazu: $user->getIdentity()->LOGIN

Chtěl jsem to vypsat nějak takto: {$user->getIdentity()->LOGIN|upper} - {$user->related ("UNIT.UNIT_ID")->NAME}

Tracy logicky vyhodila chybu: „Call to undefined method Nette\Security\User::related()“

Je nějaká jiná možnost, jak to udělat nebo budu muset udělat natvrdo select v presenteru a pak si pro něj šáhnout?

Díky moc za každou odpověď

Editoval AZJOL (12. 5. 2017 10:02)

h4kuna
Backer | 740
+
+1
-

Nejprve k problému co jsi popsal, saháš na objekt Nette\Security\User, který se stará o identitu, a zapouzdřuje authorizator a authenticator pokud jsou k dispozici. Tento objekt netuší lautr nic o databázi.

Jelikož ta data máš v databázi, tak je jen potřeba dořešit odkud je číst, případně přeuložit.

  1. nechat v databázi a pokaždé si položit dotaz, případně optimalizovat, na to si napiš extra třidu
  2. při vytváření identity si tato data ulož právě do ní
  3. použít jiná uložiště
Altimit
Člen | 82
+
0
-

a nemáš mít náhodou v druhé tabulce (unit) označené toho usera (user_id)? potom udělat propojení v databázi skrze cizí klíče a nette si to už potom dokáže vytáhnou. :)
já to mám skrze ref() a použití cizích klíčů. – většinou se ti vytvoří samy, pokud dobře pojmenuješ sloupečky. :)

AZJOL
Člen | 34
+
0
-

h4kuna napsal(a):

Nejprve k problému co jsi popsal, saháš na objekt Nette\Security\User, který se stará o identitu, a zapouzdřuje authorizator a authenticator pokud jsou k dispozici. Tento objekt netuší lautr nic o databázi.

Jelikož ta data máš v databázi, tak je jen potřeba dořešit odkud je číst, případně přeuložit.

  1. nechat v databázi a pokaždé si položit dotaz, případně optimalizovat, na to si napiš extra třidu
  2. při vytváření identity si tato data ulož právě do ní
  3. použít jiná uložiště

Nedošlo mi, že to můžu doplnit rovnou při vytváření identity..Díky moc!!