2015-11-06 44 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