如何将下划线表列映射到ZF2中的camelcased模型类属性?

时间:2015-01-19 02:15:24

标签: php model zend-framework2 mapping zend-db-table

我正在开发基于ApigilityZend Framework 2驱动的网络应用程序。对于模型图层,我使用的是ZfcBase DbMapper

目前,我的数据库表中的列的名称与对应的模型属性完全相同。对于我都使用camelcased表示法(这是第一个临时解决方案)。现在我想纠正列的命名并使它们不受欢迎。

如何在不使用ORM(如doctrine)的情况下执行此操作?我想,我需要过滤器(Zend\Filter\Word\CamelCaseToUnderscoreZend\Filter\Word\UnderscoreToCamelCaseZend\Filter\StringToLowerstrtolower(...))。好吧,但是这里应该在哪里以及如何使用它们?

1 个答案:

答案 0 :(得分:3)

您应该使用新的under_score命名约定更新所有数据库列名,数据库适配器将自动在数据库中查询此信息。

然后,为了将新的column_name“映射”到对象属性propertyName,映射器需要一个对象水分器。

default mapper is ClassMethodsout of the box supports the conversion to underscore separated keys, using the filter classes you mentioned

因此命名应该起作用,你只需要将true传递给保湿器(underscoreSeparatedKeys)的构造函数,这可以在创建映射器时非常容易地完成。