0

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.

助けてください。よろしくお願いします!

4

1 に答える 1