Symfony-学说 - 使用用户选择查询(但可以是匿名用户)



我正在使用Symfony 3,我将一些数据存储到数据库中。为此,用户不必登录。

现在,我已经使用$this->getUser();创建了一个选择查询。但是用户可以无效。当我执行此查询时,它不会选择任何行。

return $this->createQueryBuilder('product') ->where('product.user = :user') ->andWhere('product.product = :product') ->andWhere('product.cartId = :uniqueCartId') ->setParameters([ 'product' => $product, 'user' => $user, 'uniqueCartId' => $uniqueCartId ]) ->getQuery() ->execute();

$user = $this->getUser();

我已经尝试过: if(!$user instanceof User) $user = NULL;但这不起作用。

如果我删除用户检查,则可以工作。

有什么想法?

我想如果有一个用户对象,例如

$parameters=array(
    'product' => $product,
    'uniqueCartId' => $uniqueCartId
);
$user = $this->getUser();
$query = $this->createQueryBuilder('product')
        ->where('product.product = :product')
        ->andWhere('product.cartId = :uniqueCartId');
if($user != null){  /* if($user instanceof User) */
    $parameters['user'] = $user;
    $query = $query->andWhere('product.user = :user');
}else{
    /* $query = $query->andWhere('product.user IS NULL'); Not necessary */
}
$query->setParameters($parameters)
      ->getQuery()
      ->execute();

相关内容

  • 没有找到相关文章

最新更新