【发布时间】:2013-08-05 08:48:53
【问题描述】:
我正在尝试在表格中接收最新的id。因此,我创建了一个静态类,以便能够从任何所需的表中获取最新的id。
public static function getLatestId($entityManager, $table, $column) {
$qb = $entityManager->createQueryBuilder();
$qb->select('t.'.$column)->from($table, 't')
->orderBy('t.'.$column, 'DESC')->setMaxResults(1);
$query = $qb->getQuery();
$result = $query->getSingleResult();
$latestId = $result[$column];
return $latestId;
}
当我调用函数时,例如使用getLatestId($em, 'company', 'companyId') 并检查查询(使用getQuery(),它会创建奇怪的语句:
SELECT c0_.companyId AS companyId0 FROM company c0_
ORDER BY c0_.companyId DESC LIMIT 1
为什么将t. 替换为c0_. 并在列中添加0 后缀?
【问题讨论】:
-
也许在
select子句中使用参数是可能的,至少如果在 Stack Overflow 上查看 another question 看起来是这样的。但我不明白为什么它在我的情况下不起作用。
标签: sql doctrine-orm