首页 > 解决方案 > 带计算字段的查询条件

问题描述

考虑到其中一个字段已计算(距离),我想执行一个请求。

我有这样的东西

$qb = $this->createQueryBuilder('p')
    ->andWhere('p.isPublicPlace = :classic')
    ->andWhere('p.titlePlace LIKE :search OR p.categoryPlace LIKE :search')
    ->andWhere('p.categoryPlace LIKE :categoryPlace')

这是有效的。

现在我将在距离计算后添加一些过滤器

$dist = "ACOS( SIN( RADIANS(latitude))* SIN( RADIANS('.$user_lat.')) + COS( RADIANS(latitude)) * COS(RADIANS('.$user_lat.')) * COS(RADIANS(longitude) - RADIANS('.$user_lng.'))) * 6380) as distance";


$qb = $this->createQueryBuilder('p')
    ->select($dist)
    ->andWhere('p.isPublicPlace = :classic')
    ->andWhere('p.titlePlace LIKE :search OR p.categoryPlace LIKE :search')
    ->andWhere('p.categoryPlace LIKE :categoryPlace')
    ->having('distance' < ':maxDistance')
    ->orderBy('distance')

但这不起作用我在有行上有一条错误消息

(1/2) ContextErrorException 警告:get_class() 期望参数 1 是对象,给定的布尔值

很确定我做错了,但我不知道怎么做。

谢谢你的帮助 :)

标签: phpsqlsymfonyquery-builder

解决方案


推荐阅读