Doctrine の Query Builder でこのステートメントを書きたいと思います:
WHERE e.date LIKE '%$month'
(選択した日付を変数 $month の値で終わらせたい)
e.date は日付型で、値は次のようになります: '05/05/2013'
$month 変数は、次のような値を持つ文字列になります: '05/2013'
したがって、クエリで2013年5月のすべてのアイテムを取得したい
ここに私の機能全体があります:
public function findForMonthAndCat($user, $month, $category)
{
$q = $this
->createQueryBuilder('e')
->where('e.date LIKE :month') //I don't know how to write this line
->andWhere('e.user = :user')
->andWhere('e.category = :category')
->setParameter('date', $month)
->setParameter('user', $user)
->setParameter('category', $category)
->getQuery();
return $q->getResult();
}
私はこれを試しました:
->where($q->expr()->like('e.category', '%:month')
しかし、非オブジェクトで expr() を呼び出していると書かれています。
私はこれを試しました:
public function findExpensesForMonthAndCat($user, $month, $category)
{
$q = $this
->createQueryBuilder('e')
->where('e.date LIKE :month')
->andWhere('e.user = :user')
->andWhere('e.category = :category')
->setParameter('date', '%'.$month)
->setParameter('user', $user)
->setParameter('category', $category)
->getQuery();
return $q->getResult();
}
しかし、それは言います
Invalid parameter: token date is not defined in the query.
助けてください。よろしくお願いします!