我試圖將我的查詢移動到自定義存儲庫類中。以下是我已經走到這一步,Symfony2自定義存儲庫問題 - 注意:未定義偏移量:0
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 \實體(repositoryClass =「A \ MovieBundle \實體\ MovieRepository「)以及命名空間和文件夾是正確的,並且從電影到用戶的關係是正確的,因爲這在以前工作過,當我在控制器中查詢時。
主要的錯誤,我不斷收到的是:
注意:未定義抵消:0 /Applications/MAMP/htdocs/symfony2test/vendor/doctrine/orm/lib/Doctrine/ORM/QueryBuilder.php第271行
271線查詢生成器是這樣的:
public function getRootAlias()
{
$aliases = $this->getRootAliases();
return $aliases[0];
}
我不知道在哪裏,從這裏去任何幫助將不勝感激。
好主意,我試過了,但它沒有幫助我的問題,仍然得到相同的錯誤。但它看起來更乾淨,我不知道這是可能的,所以我會從現在開始編寫我的選擇語法。 –
我編輯了我的答案,這應該可以解決您的問題。 –
它有效,merci beaucoup。 –