tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

SQL funkce v DS selectu

před 10 lety

redhead
Člen | 1315

Zdravím,
snažím se udělat jednoduchou tabulku s řazením (takový hloupý DataGrid), a řazení a výběr sloupců má na starost komponenta, té jenom přidám DataSource, názvy sloupců a select. Ovšem za boha nemůžu přijít na to jak do selectu napasovat SQL funkce, zkoušel jsem už různé kombinace s poli, aliasi (as), a %sql modifikatory, ale nic nefunguje. Vždycky se to špatně obalí znakem `.

Jak na to??

//z modelu vracím DataSource:
return dibi::dataSource($this->table)
    ->orderBy('id');    //defaultní řazení

a pak se snažím říct co má tabulka zobrazovat, nadefinuju názvy (shodné s sloupci/aliasi z výsledku) a labely, a řeknu co se má vyselectovat:

// a jak sem mám napasovat SQL funkci na nějaký sloupec a alisnout ho přes AS
// např: CONCAT(c1, c2) AS con
$dataSource->select('???')

Díky moc

Editoval redhead (7. 1. 2010 17:37)

před 10 lety

phx
Člen | 652

Myslim, ze by melo jit neco takovehoto:

$dataSource->select('%sql', 'NOW()');

Btw mas posledni verzi dibi?

před 10 lety

redhead
Člen | 1315

tak to první jsem hned zkoušel a co jsem pozoroval kód DataSourcu, tak je tam pole do kterýho se ukládá jako klíč 1. paramter (%sql) a jako hodnota 2. (NOW()) a vygeneruje (i v nově stažené verzi)

SELECT %sql AS NOW() AS fullName

podívám se ještě na tu DibiVariable.. Ale chtělo by se na to podívat, protože by to bylo určitě pohodlnější..

Editoval redhead (7. 1. 2010 18:54)

před 10 lety

redhead
Člen | 1315

hmm, tak ani to druhé nejde, přijímá totiž jen string/array

to je teda pech!

před 10 lety

phx
Člen | 652

Tak uz nevim…

Ja osobne jsem prestal DataSource pouzivat kuli problemum s MySQL (https://forum.dibiphp.com/…urce-a-mysql) a udelal jsem si obdobne rozhrani pro DibiFluent. Mam tam dotaz vic pod kontrolou.

Nadruhou stranu nebylo by rozumnejsi dat tyto funkce primo do SQL dotazu pro DataSource?

před 10 lety

redhead
Člen | 1315

phx napsal(a):

Nadruhou stranu nebylo by rozumnejsi dat tyto funkce primo do SQL dotazu pro DataSource?

To asi ano, ale snažil jsem se jít cestou, že model mi vrátí pouze odkaz na tabulku a defaultí řazení, a ostatní (sloupce, offset, limit a řazení uživatelem) bude mít na starost

  1. nastavení tabulky (v presenteru)
  2. sama tabulka