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
+
0
-

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
+
+2
-
$cars = $this->database->table('cars')->where(':equipment.equipment_id', 'eq_aut_gear')

vice v doc

Desttro
Člen | 126
+
0
-

Děkuji mnohokrát, funguje.