2013-09-23 42 views
0

我想查詢所有人,然後使用列名稱而不是phpName轉換爲關聯數組。我知道在PHP代碼中,你應該總是使用phpName,但我試圖優雅地將內容轉儲到使用snake_case的表單中。謝謝您的幫助。Propel Collection使用column.name而不是column.phpName

可以說我有這個表我的架構:

<table name='person'> 
    <column name='id' phpName='Id' /> 
    <column name='first_name' phpName='FirstName' /> 
    <column name='last_name' phpName='LastName' /> 
</table> 

,我有以下查詢:

$people = PersonQuery::create()->find()->toArray(); 
var_dump($people); 

這會給我:

array(1) { [0]=> 
    array(3) { 
     ["Id"]=> int(1) 
     ["FirstName"]=> string("John") 
     ["LastName"]=> string("Doe") 
    } 
} 

但我真的想要這個:

array(1) { [0]=> 
    array(3) { 
     ["id"]=> int(1) 
     ["first_name"]=> string("John") 
     ["last_name"]=> string("Doe") 
    } 
} 

乾杯!

+0

我想這可能更適合推動論壇。 – chalbert

回答

0

如何:

$people = PersonQuery::create()->find()->toArray(BasePeer::TYPE_FIELDNAME); 
var_dump($people); 

查看文件BasePersonPeer其他選項,包括translateFieldName($name, $fromType, $toType)這是做它的另一種方式。

+0

謝謝!很抱歉,遲到的迴應,但欣賞反饋 – chalbert

相關問題