Jak upravit SQL dotaz v presenteru tak, aby jsem v Latte nemusel používat get

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

Dobrý den,
mám následující přikaz v SQL, ale nedaří se mi celý join provést v Presenteru. V Nette jsem začátečník a zatím mám největší problémy s voláním SQL příkazů :) .

select v.id,s.name,v.date from software s
join software_versions v on (s.id=v.software_id)
join (select software_id ,max(date) date
      from software_versions group by software_id) v1
on(v.software_id =v1.software_id and v.date=v1.date)
order by v.date desc

Momentálně to dělám tak, že si vytvořím v presenteru ten 2. select, tedy:

$this->template->softwares = $this->database->table('software_versions')->select('software_id, MAX(date) date, description')->group('software_id')->order('date DESC');

a posléze v cyklu v Latte volám hodnoty, které jsou uloženy do tabulky Software pomocí

$softwares_name->get($software->software_id)->name

kde $softwares_name je vlastně tabulka Software.

Je zde nějaká možnost, jak celou tuto práci přenést do Presenteru a volat pouze hodnoty v Latte?
Co mi vadí je funkce GET v latte.
Popř. pokud mi někdo vyvrátí že volání GET ve smyčce zpomaluje aplikaci, budu taky rád ale spíš si myslím že spomaluje a tak bych to tedy rád nahradil.
Děkuji za odpověď.

Editoval Payne (9. 7. 2014 21:12)

Payne
Člen | 14
+
0
-

Už jsem to vyřešil! Bylo to jednodušší, než jsem si myslel.
Do selectu Presenteru stačilo dopsat software.name (Byla má chyba, hledal jsem join a stačilo to dopsat do selectu)

$this->template->softwares = $this->database->table('software_versions')->select('software.name, software_id, MAX(date) date, description')->group('software_id')->order('date DESC');

a v latte

$software->software->name

Suprová funkčnost Nette! Něco takového jsem opravdu nečekal. Jen otestovat, zda to dělá přesně to co jsem potřeboval :)
Díky za nepomoc. :D Snad tento příspěvek někomu pomůže i když nevím nevím… :D
`php
`

EDIT: Zjistil jsem že toto řešení vypisuje špatnou (starou) description. Byl jsem si nucen udělat pohled v databázi protože spojit to nette asi nedokáže, popř. to neumím.

Editoval Payne (10. 7. 2014 17:14)