Я сделал запрос с помощью построителя запросов. Это выглядит так:
//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');
Это не работает. Как я могу присоединиться и показать всех пользователей БЕЗ адресов?
Грц