【发布时间】:2014-07-24 17:55:14
【问题描述】:
我遇到错误未定义的方法“findAllCtrs”。方法名称必须以 findBy 或 findOneBy 开头!
我已经尝试过 StackOverflow 上有关此问题的所有其他解决方案。我已经清除了缓存,清除了元数据缓存,检查了命名空间和文件夹实体,但仍然没有修复。
这是我的实体:
namespace CFS\Bundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Ref
*
* @ORM\Table(name="ref", indexes={@ORM\Index(name="refno", columns={"refno"}), @ORM\Index(name="ctrno", columns={"ctrno"})})
* @ORM\Entity(repositoryClass="CFS\Bundle\Entity\RefRepository")
*/
class Ref
{
我的存储库类:
namespace CFS\Bundle\Entity;
use Doctrine\ORM\EntityRepository;
class RefRepository extends EntityRepository
{
public function findAllCtrs()
{
$query = $this->getEntityManager()
->createQuery('
SELECT
r.refno, r.ctrno
FROM
CFSBundle:Ref r
ORDER BY
r.refno DESC
');
try {
return $query->getResult();
} catch(\Doctrine\ORM\NoResultException $e) {
return null;
}
}
}
我尝试在我的控制器中调用该方法:
$em = $this->getDoctrine()->getManager();
$containers = $em->getRepository('CFSBundle:Ref')
->findAllCtrs();
我确实注意到,当我在命令行php app/console doctrine:generate:entities CFSBundle 中生成实体时,它无法识别我的 RefRepository.php 文件。我还能错过什么?
【问题讨论】:
-
你有一个 Resources\config\doctrine\Ref.orm.yml 文件吗?
-
@Cerad,是的,我应该寻找什么?
-
@Cerad,它实际上是一个 xml 而不是 .yml
-
@Cerad,哦,我明白了。注释不能与其他格式混合。删除了.xml,它工作了!谢谢!
标签: symfony doctrine-orm