1

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

3 回答 3

0

尝试做一个 trim(array('nameArmatur' => $entity->getArmatur()) 看看是什么行为

于 2015-06-12T08:16:58.870 回答
0

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

$marker = $em->getRepository('SkerpGenericBundle:Marker')->findBy(array('userid' => $userObj->getId()));

那很奇怪!我没有遇到这样的问题。

于 2015-06-12T08:21:24.533 回答
0

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

$armaturen = $repository->findBy(
    array('nameArmatur' => $entity->getArmatur()->__toString())
);
于 2015-06-12T09:07:17.993 回答