2015-11-06 138 views
0

加入下面我有此查询:左派的学说ORM的Zend框架

SELECT * 
FROM mydb.users 
left join mydb.jobs 
on users.user_id = jobs.job_id; 

我用它们转化的ORM查询就像如下:

return 
    $qb = $this->entityManager->createQueryBuilder(); 
    $qb->select('rb', 'l') 
    ->from('Admin\Entity\Users', 'rb') 
    ->leftJoin(
     'Admin\Entity\Jobs', 
     'l', 
     \Doctrine\ORM\Query\Expr\Join::WITH, 
     'rb.user_id = l.job_id' 
     ) 
    ->getQuery() 
    ->getResult(AbstractQuery::HYDRATE_ARRAY); 

但它不仍然工作。我得到以下错误:

PHP Fatal error: Call to a member function createQueryBuilder() on null

请帮助我不知道该怎么办。

回答

1

试试这个

$entityManager = $this->serviceLocator->get('Doctrine\ORM\EntityManager'); 
$qb = $entityManager->createQueryBuilder(); 

,或者确保$这个 - > EntityManager的分配。

+0

你好,谢谢。我补充说你说的。现在我得到以下错误:'调用成员函数get()null'。我该怎么办? – qazzu

+0

你在哪里叫这个方法?在控制器中? – memo

1

好吧,它只是表示您没有在$this->entityManager中的EntityManager实例。

我的猜测是$this->entityManager可能是空的,因为你没有在你的类实例中注入EntityManager

+0

嗨,谢谢。我做了你说的,现在我得到错误:'调用成员函数get()null'。我该怎么办? – qazzu

+0

@cyyx你在哪个班上班?你可以展示或告诉关于上下文的一些问题 – Wilt

+0

@cyyx你好?有人在吗? – Wilt