我正在尝试将我的查询移动到自定义存储库类中。这是我到目前为止所得到的
class MovieRepository extends EntityRepository
{
public function showMovie($movie)
{
$em = $this->getEntityManager();
$qb = $em->createQueryBuilder('m');
$query = $qb->select('m.title', 'm.img', 'u.username')
->where('m.title = :movie')
->leftJoin('m.user', 'u')
->setParameter('movie', $movie)
->getQuery();
return $query->getSingleResult();
}
}
我在控制器中这样使用它:
$em = $this->getDoctrine()->getManager();
$result = $em->getRepository('AMovieBundle:Movie')->showMovie($movie);
我确实将 @ORM\Entity(repositoryClass="A\MovieBundle\Entity\MovieRepository") 放在了我的实体中,并且命名空间和文件夹是正确的,并且我从电影到用户的关系是正确的,因为这在以前有效,当我在控制器中有查询。
我不断收到的主要错误是:
注意:未定义的偏移量:/Applications/MAMP/htdocs/symfony2test/vendor/doctrine/orm/lib/Doctrine/ORM/QueryBuilder.php 第 271 行中的 0
查询生成器中的第 271 行是这样的:
public function getRootAlias()
{
$aliases = $this->getRootAliases();
return $aliases[0];
}
我不知道从这里去哪里,任何帮助将不胜感激。