我尝试选择一条带有子项的记录,如下所示:
$job = $em->getRepository('RaxcidoBaseBundle:Job')->findOneById($id);
它会返回一个包含记录和所有孩子的数组。 现在我想选择这个工作,如果有一个名字='test'的孩子,解决方案是什么? 我更喜欢使用docrine函数,而不是查询
这些是我的实体
<?php
...
class Job
{
...
/**
* @ORM\OneToMany(targetEntity="JobPrerequisite", mappedBy="job")
*/
protected $prerequisites;
和
<?php
...
class JobPrerequisite
{
...
/**
* @ORM\ManyToOne(targetEntity="Job", inversedBy="prerequisites")
* @orm\JoinColumn(name="job_id", referencedColumnName="id")
*/
protected $job;
/**
* @orm\Column(type="string")
*/
protected $name;
感谢
答案 0 :(得分:1)
您可以在以下两行中执行此操作:
首先找到与name ='test'相关的$ jobPrerequisite
$jobPrerequisite = $em->getRepository('RaxcidoBaseBundle:JobPrerequisite')->findOneBy(array('name' => 'test'));
然后你的$ job与$ jobPrerequisite
相关 $job = $em->getRepository('RaxcidoBaseBundle:Job')->findOneBy(array('prerequisites' => $jobPrerequisite));