我尝试在我的控制器中使用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;
答案 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())
);