2016-01-21 95 views
0

我想在不创建表的连接的情况下选择一列(具有外键约束)。我有两个表名为eventupdateeventcategoryevent列在两个表中都很常见。每当我尝试下面的代码,它会给出错误。在没有连接两个表的情况下选择一列(具有外键)

请给点建议。我不想创建一个连接。

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

$from = 'Entities\EventCategory cat'; 

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

    ->select('cat.event') 

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

$query=$qb2->getQuery(); 
+0

*“它给出错误...”*错误是什么?为什么你用[低级API](http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/query-builder.html#low-level-api) > add'而不是普通的' - > from'方法... – Wilt

回答

0

有两种选择,我可以看到:

  1. 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. 创建单独的属性HINT_INCLUDE_META_COLUMNS一起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; 
    
相关问题