Doctrine orm 条令2或条件
我试图在我的条令查询中设置where条件 条件应该是, 返回所有已发送的邮件,其中: 或 B;发送方=B,接收方=A 以下是我的疑问;查询只返回第一个条件Doctrine orm 条令2或条件,doctrine-orm,Doctrine Orm,我试图在我的条令查询中设置where条件 条件应该是, 返回所有已发送的邮件,其中: 或 B;发送方=B,接收方=A 以下是我的疑问;查询只返回第一个条件 public function getMessageHistory() { $qb = $this->getEntityManager()->createQueryBuilder(); $qb->select(array('u')) ->from('M
public function getMessageHistory()
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select(array('u'))
->from('Messages\Entity\Messages','u')
->where ('u.senderUserId = :senderId AND u.receiverUserId = :receiverId')
->orWhere('u.senderUserId = :receiverId AND u.receiverUserId = :senderId')
->setParameter('senderId',(int)$this->getUserId())
->setParameter('receiverId',(int)$this->getRecipientId());
$query = $qb->getQuery();
return $data = $query->getArrayResult();
}
提前感谢您的帮助我将这样构建:
$qb->select(array('u'))
->from('Messages\Entity\Messages','u')
->where(
$qb->expr()->orX(
$qb->expr()->andX(
$qb->expr()->eq( 'u.senderUserId', ':senderId' ),
$qb->expr()->eq( 'u.receiverUserId', ':receiverId' )
),
$qb->expr()->andX(
$qb->expr()->eq( 'u.senderUserId', ':receiverId' ),
$qb->expr()->eq( 'u.receiverUserId', ':senderId' )
),
)
)
->setParameter('senderId',(int)$this->getUserId())
->setParameter('receiverId',(int)$this->getRecipientId());
你好,伊卢伊斯纳尔。非常感谢您的回复。我不知道如何使用这个样式$qb->expr()->orX()。它叫什么?我的意思是,我在网站上找不到任何关于如何使用它的信息?。你知道关于参考资料的任何教程吗
$qb->select(array('u'))
->from('Messages\Entity\Messages','u')
->where(
$qb->expr()->orX(
$qb->expr()->andX(
$qb->expr()->eq( 'u.senderUserId', ':senderId' ),
$qb->expr()->eq( 'u.receiverUserId', ':receiverId' )
),
$qb->expr()->andX(
$qb->expr()->eq( 'u.senderUserId', ':receiverId' ),
$qb->expr()->eq( 'u.receiverUserId', ':senderId' )
),
)
)
->setParameter('senderId',(int)$this->getUserId())
->setParameter('receiverId',(int)$this->getRecipientId());