tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

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

setFormat u dibifluent s fetchpairs?

před 5 lety

Honzy
Člen | 21

Ahoj, rad bych do <select> nacpal mozne datumy vydani, viz:

$table = dibi::select("*")->from('xx');
$table->where('kod_novin = %s ', $typ);
$table->where('uzaverka > NOW()');
return $table->fetchPairs($this->pk, 'vydani');

// vysledek je: 2014-07-16 00:00:00

toto funguje bezvadne, bohuzel to vydani vrati jako format datetime ( i kdyz v DB je date ). Lze to nejak nastavit? Nasel jsem setType a setFormat, ale ty neumim (nejdou?) pouzit u Dibifluent?

Slo mi to obejit pres query, ale mit misty fluent a misty query… Toto funguje:

$query = "SELECT id, vydani FROM xx WHERE kod_novin = %s AND uzaverka > NOW()";
$result = dibi::query($query, $typ);
$result->setFormat(dibi::FIELD_DATE, 'd.m.Y');
return $result->fetchPairs($this->pk, 'vydani');

// vysledek je: 16.7.2014

před 5 lety

Milo
Nette Core | 1119

Cest je více.

Fluent spustíš, tím získáš DibiResult a dále s ním pracuješ:

$db->select(...)->from(...)->execute()->setFormat(dibi::FIELD_DATE, 'd.m.Y')->fetchPairs()

Nebo použiješ setupResult() abys to nemusel dělat až po spuštění dotazu:

$db->select(...)->from(...)->setupResult('setFormat', dibi::FIELD_DATE, 'd.m.Y')->fetchPairs()

Anebo v konfiguraci připojení uvedeš 'result' => ['formatDate' => 'd.m.Y'], ale to ovlivní všechny dotazy.

před 5 lety

Honzy
Člen | 21

Dvojku jsem myslel, trojka je uplne idealni, diky moc :)