有关创建查询生成器的删除指令出现问题,缺少参数



我对教义有问题。我正在训练到symfony,下面的方法出现错误。似乎createQueryBuilder是原因。缺少一个参数,但是我找到了很多我的例子,因此我不明白缺少什么。

public function deleteAdvertWithoutApplications($days)
{
    $dateparam = (new datetime())->modify('-' . $days . 'day');
    $qb = $this->createQueryBuilder()
        ->delete('Advert', 'a')
        ->where('a.application is EMPTY')
        ->andWhere('a.updatedAt < :dateparam')
        ->setParameter('dateparam', $dateparam);
    $query = $qb->getQuery();
    //$query->getDQL();
    return $query->execute();
}

代码抛出此代码:

Warning: Missing argument 1 for DoctrineORMEntityRepository::createQueryBuilder(), called in ...

供应商代码似乎是原因

在vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(第79行)

/**
     * @param string $alias     
     * @param string $indexBy The index for the from.        
     * @return QueryBuilder     
*/    
public function createQueryBuilder($alias, $indexBy = null)    
{        
    return $this->_em->createQueryBuilder()            
         ->select($alias)            
         ->from($this->_entityName, $alias, $indexBy);    
}

你对问题所在有想法吗?我使用Doctrine,2.5.15和symfony 3.3.18(php 7)。

提前感谢您的帮助。

你这一行有错误

  ->where('a.application is EMPTY')

使用这个

  ->where('a.application IS  NULL')

感谢佩德拉姆!!

好的,这是下面的新代码

public function deleteAdvertWithoutApplications($days)
{
    $dateparam = (new datetime())->modify('-' . $days . 'day');
    $qb = $this->_em->createQueryBuilder();
    $qb->delete('OCPlatformBundle:Advert', 'a')
       ->where('a.applications is EMPTY')
       ->andWhere('a.updatedAt < :dateparam')
       ->setParameter('dateparam', $dateparam);
    $query = $qb->getQuery();
    return $query->execute();
}

相关内容

  • 没有找到相关文章

最新更新