четверг, 23 апреля 2009 г.

Symfony: raw query, get years list for active posts

public function executeIndex(sfWebRequest $request)
{
//get years
$connection = Propel::getConnection();
$query = '
SELECT YEAR( %s ) AS myYear
FROM %s
WHERE %s = 1
GROUP BY YEAR( %s )
ORDER BY myYear DESC
';

$query = sprintf($query,
PostPeer::PUBLISHED_AT,
PostPeer::TABLE_NAME,
PostPeer::IS_PUBLISHED,
PostPeer::PUBLISHED_AT
);
$statement = $connection->prepare($query);
$statement->execute();
$years = array();
while($resultset = $statement->fetch(PDO::FETCH_OBJ))
{
$years[] = $resultset->myYear;
}
$this->years = $years;
}


returns array(2009, 2008, 2007...)

2 комментария:

Анонимный комментирует...

Можно даже средствами пропела обойтись без sql-я, если ничего не упустил.

Vit228 комментирует...

Получилось выбрать год из даты, но не получилось сгруппировать года :)