В моем контроллере был DQL Select:
$query = $this->entityManager->createQuery("SELECT cat
FROM Application\Entity\Catalog cat
WHERE cat.parent_id IS NULL AND cat.name IN (:names_ar)");
$query->setParameter('names_ar', $equipment_categories);
$catalog = $query->getResult();
Отлично работает! Но мне нужно добавить данные из другого объекта/таблицы:
$query = $this->entityManager->createQuery("SELECT cat, con
FROM Application\Entity\Catalog cat, Application\Entity\Content con
WHERE cat.parent_id IS NULL
AND cat.name IN (:names_ar)
AND cat.id = con.id");
У меня есть подключение этих таблиц в Entity:
/**
* @ORM\Id
* @Gedmo\TreePathSource
* @ORM\Column(type = "string");
* @ORM\OneToOne(targetEntity = "Content")
* @ORM\JoinColumn(name = "id", referencedColumnName = "id")
*/
protected $id;
И второй вариант с JOIN:
$query = $this->entityManager->createQuery("SELECT cat, con.sign
FROM Application\Entity\Catalog cat
INNER JOIN Application\Entity\Content con
WHERE cat.parent_id IS NULL
AND cat.name IN (:names_ar)");
Варианты работающие без ошибок. Но прежде чем я собирал данные
$catalog->fieldname;
Теперь последний код не работает. Делаю var_dump() из $catalog: 5-10 метров данных на экране :( , как обычно в зенде, не могу найти решение. Не уверен в синтаксисе DQL, он для меня новый.
Готово, о формате. Спасибо за совет о критериях! Но мне все равно нужно знать, как это сделать в DQL.
Слишком много DQL в проекте





Тяжело читать вопрос. Пожалуйста, отформатируйте его так, чтобы он был читабелен. Несколько строк для запросов (DQL) было бы хорошим началом, как и удаление пустых строк. Кроме того, смотрели ли вы Критерии, чтобы запросы генерировались для вас? Может избавить от многих хлопот.