我有这样的实体:
/**
*
* @Table(name="table")
* @Entity
*/
class Table {
/**
* @Column(type="integer")
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ManyToOne(targetEntity="Entities\Users")
* @joinColumn(name="userId", referencedColumnName="id")
*/
private $User;
/**
* @Column(type="string")
*/
private $text;
}
如果我这样做
$q->getQuery()->getSingleResult()->getUser()->getUserId()
doctrine 生成如下查询:
SELECT * FROM table t INNER JOIN users u ON u.id = t.userId WHERE id = 100
但如果我不需要表用户,如何获取 userId。
在纯 SQL 中我可以
SELECT * FROM table WHERE id = 100
并在不加入用户表的情况下获取 userId。
最佳答案
您可能还想查看 IDENTITY() 函数(Doctrine 版本 >2.2)。
例子:
SELECT IDENTITY(t.User) AS user_id from Table
应该返回:
[ ['user_id' => 1], ['user_id' => 2], ... ]
关于php - 如何在不加入 doctrine2 的情况下获得 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913150/