Cannot read an undeclared column ‚team‘
- MikKuba
- Člen | 83
Ahoj,
Myslel jsem si, že to bude nějaká prkotina, ale prostě se nemůžu vymotat z takové banality.
Schéma db zde
Následně chci do gridu vypsat informace z tabulky match a samozřejmě ID čísla ve sloupcích home a guest nahradit názvy z tabulky – cizí klíče mám dobře nastavené – taky snad viz schéma nahoře.
Když pak chci v render metodě vypsat místo ID týmu napsat název týmu, tak volám
$item->team->name
ale bohužel to skončí chybou „Cannot read an undeclared column ‚team‘“.
Když bych zkusil zapsat
$item->home->team->name
tak chyba je „Trying to get property of non-object“.
Co prosím přehlížím?
Díky :)
- MikKuba
- Člen | 83
GEpic napsal(a):
v tabulce
match
není žádný sloupecteam
zkus:
$item->home->name
To právě vypíše „Trying to get property of non-object“..
Je problém už to, že když si prostě dumpnu
$context->table("match")
nebo konkrétní řádek s ID, tak už
ani v tomto výsledku nevidím hodnoty z tabulky team
? Nebo to je
v cajku a má se to vypsat až později?
- GEpic
- Člen | 566
Fakt si zkoušel to, co jsem ti poslal já, nebo to, cos zmínil ty –
$item->home->team->name
?
Jinak já většinou pojmenovávám sloupečky se sufixem _id
(je to tak i v dokumentaci), aby bylo jasné že jde o referenci, poté to
můžeš v nette používat bez toho _id
. Tzn. sloupeček, který
se bude jmenovat team_id
pak můžeš volat
přes $item->team->name
Editoval GEpic (26. 8. 2018 18:43)
- MikKuba
- Člen | 83
GEpic napsal(a):
Fakt si zkoušel to, co jsem ti poslal já, nebo to, cos zmínil ty –
$item->home->team->name
?Jinak já většinou pojmenovávám sloupečky se sufixem
_id
(je to tak i v dokumentaci), aby bylo jasné že jde o referenci, poté to můžeš v nette používat bez toho_id
. Tzn. sloupeček, který se bude jmenovatteam_id
pak můžeš volat přes$item->team->name
Jojo, zkoušel jsem $item->home->name
.. Přidal jsem
i ten suffix tomu sloupečku, ale bez něj mi to nejde zavolat, píše to
„Cannot read an undeclared column ‚home‘“
- Phalanx
- Člen | 310
Je to přesně jak píše @GEpic, správně by mělo být:
<?php
$item->home->name
?>
Zkontroluj si:
- měl bys mít sloupce pojmenované home_id a guest_id
- nad těmito sloupci musíš mít definovaný cizí klíč (podle schématu máš)
- smaž cache
- home_id může být null, takže bys to měl ošetřit
<?php
{if(!empty($item->home_id))}
{$item->home->name}
{/if}
// zkus si dumpnout proměnné co v nich máš
{dump $item->home_id}
{dump $item->home}
?>