クエリ ビルダですべての SQL 関数を使用することはできません。それらの一部は定義されていますが ( AVG
、SUM
など)、ほとんどは定義されていません ( DAY
/ WEEK
/を含むMONTH
)。
ネイティブ SQL を書くこともできます:
// creating doctrines result set mapping obj.
$rsm = new Doctrine\ORM\Query\ResultSetMapping();
// mapping results to the message entity
$rsm->addEntityResult('AppBundle\Entity\Post', 'p');
$rsm->addFieldResult('p', 'id', 'id');
$rsm->addFieldResult('p', 'postDate', 'postDate');
$sql = "SELECT id, postDate
FROM your_table
WHERE YEAR(postDate) = ?
AND [...]";
$query = $this->_em->createNativeQuery($sql, $rsm);
$query->setParameter(1, $your_year_here);
$query->getResult();