1
私は、プロパティ= trueを特集しているトップ3ユーザーを取得しようとしています。Doctrine2はnullの代わりに1要素の配列を返します
public function getFeaturedCleaners()
{
$baseQuery = $this->_baseCleanerQuery();
return $baseQuery
->where($baseQuery->expr()->eq('c.featured', $baseQuery->expr()->literal(true)))
->andWhere($baseQuery->expr()->isNotNull('c.user'))
->orderBy('ratingTotal', 'DESC')
->setMaxResults(3)
->getQuery()->getArrayResult();
}
private function _baseCleanerQuery()
{
return $this->createQueryBuilder('c')
->select([
'c as user',
'COALESCE(AVG(rv.speed), 0) as ratingSpeed',
'COALESCE(AVG(rv.quality), 0) as ratingQuality',
'COALESCE(AVG(rv.responsibility), 0) as ratingResponsibility',
'COALESCE((AVG(rv.speed) + AVG(rv.quality) + AVG(rv.responsibility))/3, 0) as ratingTotal',
])
->leftJoin('c.reviews', 'rv');
}
しかし、誰ユーザーを特色がありませんとき、私はヌルフィールド、代わりに空の配列を1行を取得:ここに私のEntityRepositoryです
array(1) { [0]=> array(5) { ["user"]=> NULL ["ratingSpeed"]=> string(6) "0.0000" ["ratingQuality"]=> string(6) "0.0000" ["ratingResponsibility"]=> string(6) "0.0000" ["ratingTotal"]=> string(10) "0.00000000" } }
は、なぜそれが起こっているのでしょうか?どうすれば修正できますか?