当我使用findBy函数而不是在smyfony服务容器中查找时,会导致错误。
$site = $this->em->getRepository('...')->find($id);
$site->getTitle();
工作正常。如果我使用findBy
$site = $this->em->getRepository('...')->findByTitle($id);
$site->getTitle();
我收到错误“致命错误:调用成员函数getTitle();”。
我需要改变什么?
答案 0 :(得分:0)
不,注释不正确。
您必须使用@Id标识符才能使查找功能起作用。
另外,我强烈建议您在任何地方定义ID,因为如果没有它,加入将无法正常工作(除非您的意思是手动编写每个连接条件)。
是的,如果你只想要一个实体,findOneBy就是你要走的路。另请注意,find只是findOneById的快捷方式,其中Id是您使用@Id注释引用的列。
查看docs。
另外我建议你编辑问题和标签,如果其他人偶然发现了这个问题。这与Symfony无关,它与Doctrine有关。