我正在使用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();