如何解决我的学说查询返回错误
我想返回我的访问,但我需要一个不同的而不是一个计数。我尝试了这些存储库方法,但只计算有效。
工作:
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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。