2012-03-15 62 views

回答

1

我找到了答案。爲此,您需要使用標量值。例如:

$rsm = new \Doctrine\ORM\Query\ResultSetMappingBuilder($this->getEntityManager()); 
$rsm->addRootEntityFromClassMetadata('Category', 'c'); 
$rsm->addScalarResult('depth', 'depth'); 
// [ ... ] 
$results = $q->execute(); 
// Output will be a two-dimensional array 
// array(0 => array(0 => CategoryObject, 'depth' => 'scalar-value', // ...), // ...) 

然後,您可以遍歷它並在對象上設置屬性(如果需要)。

0

我不完全相信我明白你在問什麼。我假設你想知道如何用(CUSTOM_EXPRESSION)更新users.virtualfield?該語法爲:

update users set virtualfield = (CUSTOM_EXPRESSION) 

如果您想更新所有行。

如果我不符合標準,請您澄清一下您的問題?

+0

當然可以。其實我指的是Doctrine ORM,SQL只是一個只存在於查詢上下文中的字段的例子。在Doctrine上,AFAIK只能填充映射到表上字段的對象,而不能填充在SELECT語句內創建的字段作爲別名。我認爲你沒有看到教條標籤。對?你的答案是關於SQL更新=)我的問題是關於教義。 – 2012-03-16 16:53:10

相關問題