微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的学说查询返回错误

如何解决我的学说查询返回错误

我想返回我的访问,但我需要一个不同的而不是一个计数。我尝试了这些存储库方法,但只计算有效。

工作:

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 举报,一经查实,本站将立刻删除。