我可以使用FindBy过滤与ManyToOne关系相关的数据吗? 例如......
汽车实体:
/**
* @var string
* @ORM\ManyToOne(targetEntity="Klient", inversedBy="nip")
* @ORM\JoinColumn(name="fk_klient", referencedColumnName="nip")
*/
private $fkKlient;
控制器中的动作:
$userKlientNip = '22222222';
$cars = $this->getDoctrine()->getRepository('AdminBundle:Car')->findBy([
// 'fkKlient.nip' => $userKlientNip
//...
]);
如果我使用空数组运行FindBy,我的twig转储将如下所示:
Basicaly我想只获得带有fkKlient.nip == 22222222(在此示例中)的汽车
答案 0 :(得分:0)
这是什么回报:
$userKlientNip = '22222222';
$cars = $this->getDoctrine()->getRepository('AdminBundle:Car')->findBy(
array('fkKlient.nip' => $userKlientNip),
);
我不确定你的实体,所以我不确定这是不是答案。试试吧。
答案 1 :(得分:0)
我很确定这是“不能做的事情”......但我很好地解决了...... 所以基本上,'fkKlient.nip'不是一个关键(不出意外),但是当我引用实际的键并将它与$ userKlientNip进行比较时,(例1)它会神奇地做我想要的。 另外,我可以将值定义为关联数组,我会得到相同的结果(例2)。
示例1 - 控制器中的操作:
$userKlientNip = '22222222';
$cars = $this->getDoctrine()->getRepository('AdminBundle:Car')->findBy([
'fkKlient' => $userKlientNip
]);
示例2 - 控制器中的操作:
$userKlientNip = '22222222';
$cars = $this->getDoctrine()->getRepository('AdminBundle:Car')->findBy([
'fkKlient' => ['nip' => $userKlientNip]
]);