我使用querybuilder进行了查询。它看起来像:
//Create a Querybuilder
$qb = $this->_em->createQueryBuilder();
//Foreach entity, check if it's a join and leftjoin it.
//If there's no join, make it the select
foreach($config['entities'] as $name => $entity)
{
//add new alias(ses) to select statement
$qb->addSelect($entity['alias']);
if(!isset($entity['join'])){
$qb->from($entity['path'], $entity['alias']);
} else {
$qb->leftJoin($entity['join'], $entity['alias']);
}
}
->orWhere(':test IS NULL')
->setParameter('test', 'User\Entity\Address');
//Make the query
$query = $qb->getQuery();
//Return the result
return $query->getResult();
我已经使用配置文件动态选择并离开了。所以人们可以自己加入。但是当我有(例如)用户和地址时。它仅显示具有地址的用户。没有地址的用户不会显示。当我没有加入时,所有用户都会出现。有人对此有所了解吗?我读过类似于设置where子句的内容,并执行以下操作:
->orWhere(':test IS NULL')
->setParameter('test', 'User\Entity\Address');
它不起作用。我怎样才能有联接并显示所有用户也没有地址?
Grtz
答案 0 :(得分:0)
我的where子句出了问题。它有一个"喜欢"在其中,他想要喜欢街道" (从地址)到某事。但是当用户没有地址时,他不会喜欢,所以他不会向整个用户显示。