尝试从命名空间AppBundle \ Repository加载类“Roles”

时间:2017-10-11 15:35:33

标签: php symfony doctrine symfony-2.7

我在db中有我的角色:

AppBundle\Entity\Roles:
 type:     entity
 table:     Roles
 repositoryClass: AppBundle\Repository\Roles

用于测试目的的空类:

namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
use AppBundle\Entity\Roles;

class RolesRepository extends \Doctrine\ORM\EntityRepository
{
}

我的控制器中的简单用例:

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Entity\Roles;
class ClientsController extends CommonController
{
    public function newAction(Request $request)
    {
        // [...]
        $role = $this->getDoctrine()
               ->getRepository('AppBundle:Roles')
               ->findOneBy(array('role'=>'ROLE_CLIENT'));
        // [ ...]
    }
}

当我只在我的.orm.yml文件中放入“repositoryClass:\ AppBundle \ Repository \ Roles”时,我收到了错误:

  

尝试从命名空间“\ AppBundle \ Repository”加载类“Roles”。   您是否忘记了另一个命名空间的“use”语句?

任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:5)

您的存储库类名称为AppBundle\Repository\RolesRepository,因此在您的实体配置中,而不是:

 repositoryClass: AppBundle\Repository\Roles

应该是:

 repositoryClass: AppBundle\Repository\RolesRepository