【问题标题】:Left join in doctrine orm Zend framework左加入学说orm Zend框架
【发布时间】:2015-11-06 09:15:24
【问题描述】:

我在下面有这个查询:

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

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

【问题讨论】:

    标签: php zend-framework doctrine-orm


    【解决方案1】:

    试试这个

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

    或者确保 $this->entityManager 已分配。

    【讨论】:

    • 您好,谢谢。我补充你说的。现在我收到以下错误:Call to a member function get() on null。我该怎么办?
    • 你在哪里调用这个方法?在控制器中?
    【解决方案2】:

    这只是意味着您在$this->entityManager 中没有EntityManager 实例。

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

    【讨论】:

    • 您好,谢谢。我按照你说的做了,现在我收到错误:Call to a member function get() on null。我该怎么办?
    • @cyyx 你在哪个班级工作?你能展示或讲述一些关于上下文的事情吗
    • @cyyx 你好?有人吗?
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多