Order by – podpora array pole

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

Šlo by vytvořit podporu pro array pole v order?

Např aktuálně není možné udělat něco takového:

->order(array('name', 'IS NOT NULL')); // array to string
->order('date >= ?', new DateTime("- 1 hour")), // missing parameter + array to string + se čárka používá pro oddělení multi order

Editoval martinit (23. 3. 2013 21:21)

Šaman
Člen | 2640
+
0
-

ORDER? Order je řazení. Nebo už jsem natolik zapomněl nativní SQL, že mi tohle nedává smysl?
Tyhle podmínky by měly jít do WHERE a tam to jde..

MartinitCZ
Člen | 580
+
0
-

@**Šaman**: Když je dáš do where, tak ti budou ve výpisu chybět uživatelé, jež nemají jméno.
Pokud to hodíš do order, tak to vypíše dřív uživatele, kteří jméno mají a poté zbytek ;)

David Matějka
Moderator | 6445
+
0
-

taky mi parkrat chybela moznost jednoduse poslat parametr do order, ale spis bych uvital neco jako jmenne parametry (nebo jak se to preklada do cestiny), tedy co zna PDO nebo doctrine

->order('date >= :date')->parameter('date', new DateTime('- 1 hour'))
Eda
Backer | 220
+
0
-

Úplně by stačila podpora otazníků, jak je známe z funkce where(). A stejně tak by to chtělo i u funkce select. Ale je jasné, že jsou bolavější problémy k řešení než tohle. Dokud existuje workaround, lze to překousnout.

MartinitCZ
Člen | 580
+
0
-

@**Eda**: Ano, mě by taky stačila podpora otazníků, ale to by vznikl BC break, jelikož je možné napsat toto:

->order('name', 'id') // === ->order('name')->order('id')

Workaround sice existuje, ale obač vypadá dost hrozivě. ;)

Editoval martinit (24. 3. 2013 9:28)