我有一个名为ServiceUser的类,声明如下
命名空间AppBundle \ Entity;
将Doctrine \ ORM \ Mapping用作ORM;
/**
* ServiceUser
*
* @ORM\Table(name="serviceuser")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ServiceUserRepository")
*
*/
class ServiceUser
我还有一个ServiceUserRepository,里面有一个名为findAllOrderedByName的自定义存储库方法
命名空间AppBundle \ Repository;
use Doctrine\ORM\EntityRepository;
/**
* ServiceUserRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class ServiceUserRepository extends EntityRepository
{
public function findAllOrderedByName()
{
return $this->getEntityManager()
->createQuery(
'SELECT s FROM AppBundle:ServiceUser s ORDER BY s.officeName ASC'
)
->getResult();
}
}
我的问题是ServiceUserController无法访问此自定义方法。
我正在尝试这样做
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$serviceUsers = $em->getRepository('AppBundle:ServiceUser')->findAllByName();
return $this->render('serviceuser/index.html.twig', array(
'serviceUsers' => $serviceUsers,
));
}
它可以看到像getALL()这样的OOB方法,但不是我的自定义方法findAllOrderedByName()
答案 0 :(得分:2)
感谢Cerad指出了清除元数据缓存的方向。
如果其他人有同样的问题,则以下命令执行此操作
php bin / console doctrine:cache:clear-metadata