Nefunguje spojení dvou tabulek pomocí related()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Desttro
- Člen | 126
Zdravím,
chtěl bych vás poprosit o pomoc. Mám 2 tabulky, cars a equipment.
V equipment je cizí klíč k tabulce cars. Potřebuju udělat dotaz, aby se
zobrazily všechny položky z tabulky cars, které mají v tabulce equipment
ve sloupci equipment_id hodnotu „eq_aut_gear“
Takhle to mám vyřešené v latte šabloně s obrázky, konkrétně takhle:
{foreach $car->related('photos')->limit(1) as $photo}
<img width="100" heigth="75" src="{$photo->url}" alt="">
{/foreach}
No, ale nevím si rady, jak to udělat s tímto „filtrem“, aby vyfiltroval pouze ty auta, které mají takovou vlastnost. Mám to řešeno takhle:
$cars = $this->database->table('cars');
if ($automat == '1') {
$cars->related('equipment')->where('equipment_id = eq_aut_gear');
}
Laděnka mi vyhodí:
Nette\MemberAccessException
Call to undefined method Nette\Database\Table\Selection::related().
Rozumím tomu, že metoda related neexistuje, ale chtěl jsem to zkusit, když je něco podobného pro latte. Proto se chci zeptat, zda je nějaké řešení. Děkuji.
- David Matějka
- Moderator | 6445
$cars = $this->database->table('cars')->where(':equipment.equipment_id', 'eq_aut_gear')
vice v doc