Php 无法访问symfony2中存储库的自定义功能

Php 无法访问symfony2中存储库的自定义功能,php,doctrine-orm,repository,entity,symfony,Php,Doctrine Orm,Repository,Entity,Symfony,让我描述一下我的问题 我已经在存储库中为演示应用程序中的实体TblUserEdu创建了自定义函数。我的实体如下 TblUserEdu.php /** * @ORM\Entity(repositoryClass="UserBundle\Repository\TblUserEduRepository") * @ORM\Table(name="tbl_user_edu") */ class TblUserEdu { } 我已经在实体中映射了存储库,并在存储库中创建了测试函数,保存到路径Use

让我描述一下我的问题 我已经在存储库中为演示应用程序中的实体
TblUserEdu
创建了自定义函数。我的实体如下

TblUserEdu.php
/**
 * @ORM\Entity(repositoryClass="UserBundle\Repository\TblUserEduRepository")
 * @ORM\Table(name="tbl_user_edu")
 */
class TblUserEdu
{

}
我已经在实体中映射了存储库,并在存储库中创建了测试函数,保存到路径
UserBundle\repository

TblUserEduRepository.php

/**
 * @ORM\Entity(repositoryClass="UserBundle\Repository\TblUserEduRepository")
 * @ORM\Table(name="tbl_user_edu")
 */
class TblUserEdu
{

}
<?php
    namespace UserBundle\Repository;
    use Doctrine\ORM\EntityRepository;
    use UserBundle\Entity\TblUserEdu;

    class TblUserEduRepository extends EntityRepository
    {
        public function findEducations()
        {
            return $this->getEntityManager()
                   ->createQuery('SELECT u FROM UserBundle:TblUserEdu u WHERE u.edu_status="r"')
                   ->getResult();
        }


    }
$edus = $em->getRepository('UserBundle:TblUserEdu')->findEducations();
但它返回的错误是函数未定义

Undefined method 'findEducations'. The method name must start with either findBy or findOneBy! 

我尝试过很多解决方法,但每次都失败了

尝试使用其他函数名,如getEducations。我认为find前缀是为magic repository finds保留的。@ejuhjav,我尝试了不同的函数名,但返回了相同的错误。啊,是的。我之前的评论不正确(因为您可以使用find前缀)。但基本上问题是控制器找不到repository类。您为repository类定义了名称空间了吗?请在UserBundle\Resources/config/doctor下进行检查,并删除在那里找到的所有映射文件。您可能在从数据库构建实体时较早地生成了它们。映射正在干扰您的注释。因此找不到存储库。@Cerad,感谢您在删除映射文件后解决了此问题。非常感谢