我想查询所有人,然后使用列名而不是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")
    }
}


干杯!

最佳答案

怎么样:

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


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

10-08 11:52