我真的不明白为什么它不起作用,因为同一个实体的类似代码运行得很好。
我在“ConnexioRepository”中有这个功能,我90%肯定它运作良好:
public function findPort($port)
{
$em = $this->getEntityManager();
$consulta = $em->createQuery('
SELECT c FROM FrontendBundle:Connexio c
WHERE c.port = :port
');
$consulta->setParameter('port', $port);
return $consulta->getOneOrNullResult();
}
这就在我的FrontendBundle中:
$connexioTMP = $em->getRepository('FrontendBundle:Connexio')->findPort($port->getId());
我确定$ port-> getId()有效,但是当“findPort”试图给我所需的对象时(仅当我的数据库中存在匹配时),所有似乎都停止工作。就像:
$id=$port->getId();
//$connexioTMP = $em->getRepository('FrontendBundle:Connexio')->findPort($port->getId());
echo($id);
结果:它显示了该对象的id
但是
$id=$port->getId();
$connexioTMP = $em->getRepository('FrontendBundle:Connexio')->findPort($port->getId());
echo($id);
结果:没有。 500内部服务器错误。
如果我提出同样的事情:
$connexioTMP = $em->getRepository('FrontendBundle:Connexio')->findOneByPort($port->getId());
这句话下面的所有内容都不起作用。我不知道它是否与“端口”是外键这一事实有关。
我已经调用了此存储库的其他功能并且运行良好。
非常感谢。