我想选择一个列(具有外键约束)而不在表上创建连接。我有两个名为eventupdate
和eventcategory
的表。 event
列在两个表中都很常见。每当我尝试以下代码时,它都会出错。
请提出一些建议。我不想创建联接。
$qb2 = $this->em->createQueryBuilder();
$from = 'Entities\EventCategory cat';
$qb2->add('from',$from)
->select('cat.event')
->Where('cat.id=3);
$query=$qb2->getQuery();
答案 0 :(得分:0)
我可以看到两个选项:
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
在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;