私は、DoctrineクエリのWHERE句でINパラメータとして使用したいステータスオブジェクトのArrayCollectionを持っています。クエリコードはDoctrineクエリのパラメータとしてarraycollectionを使用する
$query = $repository->createQueryBuilder('r')
->join('r.applicationStatus', 's')
->where('r.submitted IS NOT NULL')
->andWhere('r.created >= :date')
->andWhere('r.created < :date2')
->andWhere('s IN (:status)') // Here's the In statement
->orderBy('r.created', 'DESC')
->setParameter('date', $appSearch->getDateFrom())
->setParameter('date2', $end)
->setParameter('status', $appSearch->getApplicationStatus()) //Here's the array collection
->getQuery();
ですが、クエリではゼロレコードが返されます。それを動作させるには、$ appSearch-> getApplicationStatus()のarraycollectionを手作業で反復し、ステータスIDを新しい配列に入れて、結果が正しい結果を得るようにする必要があります。これは非常に非効率的です。
私は間違っていますか?
のArrayCollectionクラスの
同じことを行うには(非常に便利) 'toArray'方法があります。 – spdionis
Doctrine *はeq()比較のパラメータとしてオブジェクトを受け入れることができますが、オブジェクトの配列が好きではないようです。 – darkbluesun