问题描述
我想返回我的访问,但我需要一个不同的而不是一个计数。我尝试了这些存储库方法,但只计算有效。
工作:
public function numberOfVisitsBetweenDates($dateMin,$dateMax)
{
$builder = $this->createqueryBuilder('visit');
$builder->select('count(disTINCT visit.user)');
$builder->where('visit.date BETWEEN :dateMin AND :dateMax');
$builder->setParameter('dateMin',$dateMin);
$builder->setParameter('dateMax',$dateMax);
$query = $builder->getQuery();
// dd($query);
return $query->getResult();
}
我的转储 dql -_dql: "SELECT count(disTINCT visit.user) FROM App\Entity\Visit visit WHEREvisit.date BETWEEN :dateMin AND :dateMax"
不工作:
public function numberOfVisitsBetweenDates($dateMin,$dateMax)
{
$builder = $this->createqueryBuilder('visit');
$builder->select('visit.user');
$builder->where('visit.date BETWEEN :dateMin AND :dateMax');
$builder->setParameter('dateMin',$dateMin);
$builder->setParameter('dateMax',$dateMax);
$builder->distinct();
$query = $builder->getQuery();
// dd($query);
return $query->getResult();
}
我的转储 dql:-_dql:“SELECT disTINCT visit.user FROM App\Entity\Visit visit WHEREvisit.date BETWEEN :dateMin AND :dateMax” 我的错误:
查询异常 查询异常 HTTP 500 内部服务器错误 [语义错误] 'user FROM App\Entity\Visit' 附近的第 0 行第 22 列:错误:无效的 PathExpression。必须是 StateFieldpathExpression。
解决方法
你应该尝试这样的事情:
public function numberOfVisitsBetweenDates($dateMin,$dateMax)
{
$builder = $this->createQueryBuilder('visit');
$builder->where('visit.date BETWEEN :dateMin AND :dateMax');
$builder->setParameter('dateMin',$dateMin);
$builder->setParameter('dateMax',$dateMax);
$builder->groupBy('visit.user');
$query = $builder->getQuery();
return $query->getResult();
}