选择一个列(具有外键)而不连接两个表

时间:2016-01-21 05:58:18

标签: php doctrine-orm query-builder

我想选择一个列(具有外键约束)而不在表上创建连接。我有两个名为eventupdateeventcategory的表。 event列在两个表中都很常见。每当我尝试以下代码时,它都会出错。

请提出一些建议。我不想创建联接。

$qb2 = $this->em->createQueryBuilder();

$from = 'Entities\EventCategory cat';

$qb2->add('from',$from)

    ->select('cat.event')

    ->Where('cat.id=3);

$query=$qb2->getQuery();

1 个答案:

答案 0 :(得分:0)

我可以看到两个选项:

  1. HINT_INCLUDE_META_COLUMNS以及ArrayHydrator

    $query = $queryBuilder->getQuery();
    $query->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true);
    var_dump($query->getArrayResult()); // Will return array with raw foreign key column name => value, e.g. user_id => 5
    
  2. Entities\EventCategory中创建具有外键作为基本类型的单独属性

    /**
     * @var User
     *
     * @ManyToOne(targetEntity="User")
     * @JoinColumn(name="user_id", referencedColumnName="user_id")
     */
    private $user;
    
    /**
     * @var int
     *
     * @Column(name="user_id", type="integer", nullable=false)
     */
    private $userId;