我正在开发基于Apigility的Zend Framework 2驱动的网络应用程序。对于模型图层,我使用的是ZfcBase
DbMapper
。
目前,我的数据库表中的列的名称与对应的模型属性完全相同。对于我都使用camelcased表示法(这是第一个临时解决方案)。现在我想纠正列的命名并使它们不受欢迎。
如何在不使用ORM(如doctrine)的情况下执行此操作?我想,我需要过滤器(Zend\Filter\Word\CamelCaseToUnderscore
,Zend\Filter\Word\UnderscoreToCamelCase
,Zend\Filter\StringToLower
或strtolower(...)
)。好吧,但是这里应该在哪里以及如何使用它们?
答案 0 :(得分:3)
您应该使用新的under_score
命名约定更新所有数据库列名,数据库适配器将自动在数据库中查询此信息。
然后,为了将新的column_name
“映射”到对象属性propertyName
,映射器需要一个对象水分器。
default mapper is ClassMethods
,out of the box supports the conversion to underscore separated keys, using the filter classes you mentioned。
因此命名应该起作用,你只需要将true
传递给保湿器(underscoreSeparatedKeys
)的构造函数,这可以在创建映射器时非常容易地完成。