Zend Framework 3 DQL (язык доктрины).SELECT, используя 2 таблицы (2 объекта).Как получить поля из результата? - PullRequest
0 голосов
/ 10 февраля 2019

У меня в контроллере был 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();

Рабочая greate!Но мне нужно добавить данные из другой сущности / таблицы:

    $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");

У меня есть соединение этой таблицы в сущности:

/**
 * @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 метров данных на моем экране :(, как обычно в Zend, не могу найти решение. Я не уверен в синтаксисе DQL, это ново для меня.

...