0

我可以使用 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 转储将如下所示:

在此处输入图像描述

基本上我只想得到带有 fkKlient.nip == 22222222 的汽车(在这个例子中)

4

2 回答 2

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]
    ]);
于 2016-07-07T22:35:39.163 回答
0

这会返回什么:

$userKlientNip = '22222222';
$cars = $this->getDoctrine()->getRepository('AdminBundle:Car')->findBy(
    array('fkKlient.nip' => $userKlientNip),
);

我不确定你的实体,所以我不确定这是否是答案。试试看。

于 2016-07-07T17:14:05.117 回答