2013-06-21 84 views
0

如何添加一個額外的列到我的選擇查詢,所以當我執行TableA :: doSelect($ c)時,我也可以得到TableB的一些列?在symfony 1.0中似乎並沒有addSelectColumn,除非我錯過了一些東西。如何在symfony 1.0中添加額外的選擇列

$c = new Criteria(); 
$c->setDistinct(); 
// need to add TableB::START_DATE to select 
$c->addJoin(TableA::ID, TableB::ID); 
... 
$c->addAscendingOrderByColumn (TableB::START_DATE); 
$result = TableA::doSelect($c); 

回答

0

你可以使用addSelectColumn()與Symfony的1.0,但應避免添加的doSelect()在這種情況下。

此方法正在執行一個對象,並希望按照它們在架構文件中描述的相同順序來獲取其所有字段。嘗試跳過一個字段或從另一個表中添加一個字段將在結果集中被忽略。

根據你行走的版本,你可以嘗試使用doSelectStmt(),doSelectRS()doSelectJoin()方法,而不是。

還是去用最簡單的方法,只是使用prepareStatement()

$con = Propel::getConnection(); 
$sql = "SELECT `table1`.field1, `table2`.field2 FROM `table1` JOIN `table2`. ON ..." 

$st = $con->prepareStatement($sql); 
$rs = $st->executeQuery(); 

while ($rs->next()) 
{ 
... 
} 

http://symfony.com/legacy/doc/cookbook/1_0/en/behaviors

相關問題