symfony2 и doctrine и дочерние элементы в предложении where

#symfony #join #doctrine-orm #entity #parent-child

#symfony #Присоединиться #doctrine-orm #сущность #родитель-потомок

Вопрос:

я попытался выбрать одну запись с ее дочерними элементами, как показано ниже:

 $job = $em->getRepository('RaxcidoBaseBundle:Job')->findOneById($id);
  

это вернет мне массив, в котором также есть запись и все дочерние элементы.
теперь я хочу выбрать это задание, если у него есть дочерний элемент с name =’test’, каково решение?
я предпочитаю использовать функции docrine, а не запрос

это мои сущности

 <?php
...
class Job
{
...
/**
  * @ORMOneToMany(targetEntity="JobPrerequisite", mappedBy="job")
 */
protected $prerequisites;
  

и

 <?php
...
class JobPrerequisite
{
...
/**
 * @ORMManyToOne(targetEntity="Job", inversedBy="prerequisites")
 * @ormJoinColumn(name="job_id", referencedColumnName="id")
 */
protected $job;

/**
 * @ormColumn(type="string")
 */
protected $name;
  

Спасибо

Ответ №1:

Вы можете сделать это в этих двух строках :

Сначала найдите $jobPrerequisite, относящийся к name = ‘test’

 $jobPrerequisite = $em->getRepository('RaxcidoBaseBundle:JobPrerequisite')->findOneBy(array('name' => 'test'));
  

и затем ваша $ job, соответствующая указанному выше $jobPrerequisite

  $job = $em->getRepository('RaxcidoBaseBundle:Job')->findOneBy(array('prerequisites' => $jobPrerequisite));