tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

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

DibiDataSource – alias pro sloupec při select()?

před 10 lety

LastHunter
Člen | 1539

Ahoj,
snažím se v Nette rozchodit Honzovu RssControl, ale narazil jsem na problém s DibiDataSource. Potřebuji, aby se ve výsledku sloupec seo tvářil jako sloupec id.

Kód modelu:

public function getEvents() {
    return $this->db->dataSource('SELECT id, title, seo, time, perex, text
                      FROM [::' . self::EVENTS_TABLE . ']
                      ORDER BY time DESC');
}

Kód presenteru:

$items = $this['eventsModel']->getEvents()->select(array(
        'seo as id',
        'title',
        'time as pubDate',
        'perex as description',
     ))->applyLimit(10);

Dibi zahlásí Unknown column 'seo as id' in 'field list'. Jakou zvolit syntaxi, abych docílil toho, co chci?

Nebo to nejde a mám čistě jen pro RSS vytvořit další metodu?

Editoval LastHunter (30. 8. 2009 12:27)

před 10 lety

Honza M.
Člen | 1674
$this->db->select("*")->from("table")->toDataSource()->select(array(
    "nazev" => "alias",
    "jinyNazev"
));

DibiDataSource má takovouto tajnou fičuru.

Jinak pro účely RssControlu je jedno, jestli se sloupec jmenuje seo nebo id. Oboje před předhozením RssControlu musíš zahodit.

Editoval Honza M. (30. 8. 2009 12:58)