0
나는 querybuilder를 사용하여 쿼리를 만들었습니다. 모양은 다음과 같습니다.Doctrine 2를 사용하여 모든 객체를 검색하지 않습니다. 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