2015-11-06 6 views
0

У меня есть этот запрос ниже:левой присоединиться к Doctrine ORM Zend Framework

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(); 

Или убедитесь, что $ this-> EntityManager назначается.

+0

Привет, спасибо. Я добавляю то, что сказал. И теперь я получаю следующую ошибку: «Вызовите функцию-член get() на null'. Что мне делать? – qazzu

+0

Где вы называете этот метод? В контроллере? – memo

1

Ну, это просто означает, что у вас нет EntityManager экземпляра в $this->entityManager.

Я предполагаю, что $this->entityManager, вероятно, является нулевым, потому что вы не вводили EntityManager внутри вашего экземпляра класса.

+0

Привет, спасибо. Я сделал то, что вы сказали, и теперь я получаю сообщение об ошибке: «Вызовите функцию-член get() на null'. что мне делать? – qazzu

+0

@cyyx в каком классе вы работаете? Вы можете показать или рассказать что-то о контексте – Wilt

+0

@cyyx Привет? Есть кто там? – Wilt

Смежные вопросы