使用column.name而不是column.phpName进行Propel Collection

时间:2013-09-23 16:09:42

标签: php mysql collections schema propel

我想查询所有人,然后使用列名而不是phpName转换为关联数组。我知道在Php代码中,你应该总是phpName,但我试图优雅地将内容转储到使用snake_case的表单中。谢谢你的帮助。

假设我的架构中有这个表:

<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") 
    } 
} 

干杯!

1 个答案:

答案 0 :(得分:0)

怎么样:

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

在文件BasePersonPeer中查找其他选项,包括translateFieldName($name, $fromType, $toType)这是另一种方法。