Symfony Controller findBy()不使用变量

时间:2015-06-12 08:00:27

标签: symfony controller findby

我尝试在我的控制器中使用findBy(),它只在我使用纯文本而不是变量时才有效 - 但两者都是字符串,例如:

$repository = $this->getDoctrine()->getRepository('SchlauchBundle:Armatur');

$armatur = $entity->getArmatur();

$armaturen = $repository->findBy(
    array('nameArmatur' => $entity->getArmatur())
);

var_dump($ armatur)输出:
string(21) "Klemmschalen EN 14420"

但是var_dump($ armaturen)输出:
NULL

当我将findBy() - 部分更改为:

$armaturen = $repository->findBy(
    array('nameArmatur' => "Klemmschalen EN 14420")
);

它有效 - 这让我很困惑!可能是我不可能使用变量的问题?我不明白其中的区别。

在实体文件中定义它(没什么特别的):

/**
* @var string
*/
private $nameArmatur;

3 个答案:

答案 0 :(得分:0)

尝试修剪(数组('nameArmatur'=> $ entity-> getArmatur())以查看行为是什么

答案 1 :(得分:0)

我使用以下样式才能正常工作 -

$marker = $em->getRepository('SkerpGenericBundle:Marker')->findBy(array('userid' => $userObj->getId()));
这很奇怪!我没有遇到过那种问题。

答案 2 :(得分:0)

似乎$entity->getArmatur()可能会返回一个带有已实现__toString方法的对象。 也许尝试类似的事情:

$armaturen = $repository->findBy(
    array('nameArmatur' => $entity->getArmatur()->__toString())
);