gpt4 book ai didi

php - Symfony2 - 找不到自定义存储库

转载 作者:搜寻专家 更新时间:2023-10-31 20:47:35 24 4
gpt4 key购买 nike

我有这个错误:

Fatal error: Class 'gsyle39\VideothequeBundle\Repository\GenreRepository' not found in C:\wamp\www\Videotheque\vendor\doctrine\lib\Doctrine\ORM\EntityManager.php on line 578

不过,我将存储库类的名称添加到我的实体的映射定义中:

/**
* gsyle39\VideoThequeBundle\Entity\Genre
*
* @ORM\Table()
*
* @ORM\Entity(repositoryClass="gsyle39\VideothequeBundle\Repository\GenreRepository")
*/
class Genre
{
...
}

这是我的流派库:

<?php

namespace gstyle39\VideothequeBundle\Entity;

use Doctrine\ORM\EntityRepository;

/**
* GenreRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class GenreRepository extends EntityRepository
{
public function myfindAll()
{
$genres = $this->_em->createQueryBuilder('g')
// leftJoin because I need all the genre
->leftJoin('g.films', 'f')
->addSelect('COUNT(f)')
->groupBy('g')
->getQuery()
->getArrayResult();

// $genres contains all the genres and the associated movies
return ($genres);
}
}

最后,这是我用于调用客户“findALL”的 Controller 中的方法:

public function getListGenresAction(){

$liste_genres = $this->getDoctrine()
->getEntityManager()
->getRepository('gstyle39VideothequeBundle:Genre')
->myFindAll;

return $this->render('gstyle39VideothequeBundle:Videotheque:test.html.twig', array(
'genres' => $liste_genres
));
}

最佳答案

您的存储库具有命名空间 namespace gstyle39\VideothequeBundle\Entity; 并且注释表明它应该是 namespace gstyle39\VideothequeBundle\Repository;

此外,确保将它放在 src/gstyle39/VideothequeBundle/Repository 目录下。

关于php - Symfony2 - 找不到自定义存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com