ConventionalReflection a related prvky

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

Zdravím.

Dnes som sa pokúšal nastaviť ConventionalReflection, no mám elementárny problém.

Popis tabuliek v DB:

call          -> |id|popis|........|
typology      -> |id|typology_id|title|
call_typology -> |call_id|typology_id|

Tabuľka typology obsahuje stĺpec typology_id kvôli tomu, aby sa dali vytvárať vnorené typológie, resp. subtypológie hovorov.

Problém je v tom, že ak chcem získať z jedného hovoru call, všetké typológie, ktoré sú namapované v tabuľke call_typology následovne:

foreach($call->related('call_typology') as $typo){
	echo $typo['id'];
}

ladenka mi vráti hlášku, že:

Exception in Nette\Database\Table\ActiveRow::__toString(): Table call_typology does not have any primary key.

Tabuľka call_typology nemôže mať primárny kľúč lebo v nej nieje žiaden jednoznačný stĺpec, napr: id.

Databáza nemá kvôli mojím potrebám nastavené cudzie kľúče.

Viete mi proadiť?

Verzie softvéru:
Nette Framework (version 2.0.6 released on 2012–10–01, https://nette.org)
PHP Version ⇒ 5.4.8

vvoody
Člen | 910
+
0
-

?

foreach($call->related('call_typology') as $callTypology){
    echo $callTypology->typology->id;
}
yogiman321
Člen | 11
+
0
-

vvoody napsal(a):

?

foreach($call->related('call_typology') as $callTypology){
    echo $callTypology->typology->id;
}

Áno, takto to funguje. Ako som aj písal bol to elementárny problém. Ďakujem!