未定义的方法“ getCategories”方法名称必须以findBy,findOneBy或countBy开头

问题描述

在“类别”实体中,有注释:

* @ORM\Entity(repositoryClass="App\Repository\CategoriesRepository")
* @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\nestedTreeRepository")

在CategoriesRepository中,有:

namespace App\Repository;

use App\SomeRepository;

class CategoriesRepository extends SomeRepository
{
      public function getCategories($id,...)
}

在CategoriesController中,有:

namespace App\Controller;

public function indexAction(Request $request,$id,...)
{
     $categoriesRepository = $this->em->getRepository('App:Categories');
     $list = $categoriesRepository->getCategories($id,...);
}

为什么有错误以及如何解决

解决方法

原来它必须是:

* @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
* @ORM\Entity(repositoryClass="App\Repository\CategoriesRepository")