2013-10-11 50 views
0

我有一個函數使用QueryBuilder從表中選擇所有列,並且我想將自定義列添加到生成的查詢中。這是我有:學說:使用QueryBuilder的自定義列別名

$qb = $this->_em->createQueryBuilder(); 
      $qb->select(array('c', 'a')) 
       ->from('models\Car', 'c') 
       ->leftJoin('c.account', 'a') 
       ->where('a.admin = 0'); 

現在,我想補充一個「天汽車是在商店」欄目,這在標準的MySQL將是:

((UNIX_TIMESTAMP(c.daySold) - UNIX_TIMESTAMP(c.dayArrived))/86400) as days_car_in_store 

我怎樣才能做到這一點通過將它添加到上面構造的查詢中?

+0

做了這個答案的工作? – codecowboy

回答

0

嘗試這樣: -

$sql = "((UNIX_TIMESTAMP(c.daySold) - UNIX_TIMESTAMP(c.dayArrived))/86400)"; 

$qb->add('select', new Expr\Select(array('c', "{$sql} as days_car_in_store")))