Mat*_*lin 8 php symfony doctrine-orm
我正在实体存储库中执行此查询并继续获取
无法在未定义的结果变量上添加条件
但查询根本没有聚合.为什么这发生在我身上?
public function getPersonalizableItemsByOwner(User $owner)
{
$qb = $this
->getEntityManager()
->createQuery('SELECT pi FROM '.$this->getEntityName().' pi WHERE order_id = :owner_id AND (deletedAt IS NULL OR deletedAt > :referenceDate)')
->setParameters(array('owner_id' => $owner->getId(), 'referenceDate' => date('Y-m-d H:i:s')));
return $qb->getResult();
}
Run Code Online (Sandbox Code Playgroud)
PS:我对Doctrine知之甚少,我的任务是通过KnpLabs SoftDeleteable特性添加软删除支持,但仅限于某些特定情况,因此我不能使用全局可用的过滤器,必须手动实现.
arn*_*bey 22
您不能检查deletedAt是否为null,但检查deletedAt的ID是否为null.
改为:deletedAt.id IS NULL应该修复它.
编辑:今天早上得到了这个错误并修复了它,这要归功于:http://www.christophe-meneses.fr/article/corriger-l-erreur-request-critical-uncaught-php-exception-doctrine-orm-query-queryexception -semantical-错误不能加-具有输入条件上-A-非结果变量
DQL 中存在拼写错误,该字段应该是ownerId,而不是order_id。此外,需要提供每个字段的名称空间,如下所示:
public function getPersonalizableItemsByOwner(User $owner)
{
$qb = $this
->getEntityManager()
->createQuery('SELECT pi FROM '.$this->getEntityName().' pi WHERE pi.ownerId = :owner_id AND (pi.deletedAt IS NULL OR pi.deletedAt > :referenceDate)')
->setParameters(array('owner_id' => $owner->getId(), 'referenceDate' => date('Y-m-d H:i:s')));
return $qb->getResult();
}
Run Code Online (Sandbox Code Playgroud)