Symfony ';无效参数编号:绑定变量的数量与令牌的数量不匹配';西蒙尼

Symfony ';无效参数编号:绑定变量的数量与令牌的数量不匹配';西蒙尼,symfony,doctrine,doctrine-query,Symfony,Doctrine,Doctrine Query,我正在使用查询生成器处理一个symfony项目实体。当我尝试运行这个函数时,我遇到了这个问题 无效参数编号:绑定变量的数量与令牌的数量不匹配 我认为这是错误的 $qb->where($qb->expr()->in('p.category','1')) ->设置参数(1美元类别) 如果有人能帮助我,那将是巨大的帮助 这里有两个问题。第一个是最后一个where子句覆盖了第一个where子句。这可以通过使用andWhere进行修复。第二个是将命名参数(:title)与位置参数(?1)混合。混音是一个禁

我正在使用查询生成器处理一个symfony项目实体。当我尝试运行这个函数时,我遇到了这个问题

无效参数编号:绑定变量的数量与令牌的数量不匹配

我认为这是错误的

$qb->where($qb->expr()->in('p.category','1')) ->设置参数(1美元类别)


如果有人能帮助我,那将是巨大的帮助

这里有两个问题。第一个是最后一个where子句覆盖了第一个where子句。这可以通过使用andWhere进行修复。第二个是将命名参数(:title)与位置参数(?1)混合。混音是一个禁忌,而且你并不真的需要expr对象。尝试:

$qb->select('product')
  ->from('EagleAdminBundle:Products', 'product')
  ->orderBy('product.id', 'DESC');
if ($category) {
    $qb->andWhere('product.category IN (:category)');
    $qb->setParameter('category', $category);
}
$qb->andWhere('product.productTitle LIKE :title');
$qb->setParameter('title', "$search%");
可能重复的
$qb->select('product')
  ->from('EagleAdminBundle:Products', 'product')
  ->orderBy('product.id', 'DESC');
if ($category) {
    $qb->andWhere('product.category IN (:category)');
    $qb->setParameter('category', $category);
}
$qb->andWhere('product.productTitle LIKE :title');
$qb->setParameter('title', "$search%");