如何将带下划线的 table 列映射到 ZF2 中的驼峰模型 class 属性?
How to map underscored table columns to camelcased model class properties in ZF2?
我正在开发 Apigility driven web application based on Zend Framework 2. For the model layer I'm using the ZfcBase
DbMapper
。
目前,我的数据库表中的列的名称与相应的模型属性完全相同。对于两者,我都使用驼峰式表示法(这是第一个临时解决方案)。现在我想更正列的命名并使它们不带底线。
如何在不使用 ORM 的情况下执行此操作(如 doctrine)? I guess, I'll need the Filters (Zend\Filter\Word\CamelCaseToUnderscore
, Zend\Filter\Word\UnderscoreToCamelCase
, Zend\Filter\StringToLower
or just strtolower(...)
)。嗯,但是在这里应该在哪里以及如何使用它们?
您应该使用新的 under_score
命名约定更新所有数据库列名称,数据库适配器将自动查询数据库以获取此信息。
然后为了 'map' 新 column_name
对象 属性 propertyName
映射器需要一个对象水化器。
default mapper is ClassMethods
, which out of the box supports the conversion to underscore separated keys, using the filter classes you mentioned。
因此命名应该就可以了,你只需要将 true
传递给水化器的构造函数 (underscoreSeparatedKeys
),这在你创建映射器时可以很容易地完成。
我正在开发 Apigility driven web application based on Zend Framework 2. For the model layer I'm using the ZfcBase
DbMapper
。
目前,我的数据库表中的列的名称与相应的模型属性完全相同。对于两者,我都使用驼峰式表示法(这是第一个临时解决方案)。现在我想更正列的命名并使它们不带底线。
如何在不使用 ORM 的情况下执行此操作(如 doctrine)? I guess, I'll need the Filters (Zend\Filter\Word\CamelCaseToUnderscore
, Zend\Filter\Word\UnderscoreToCamelCase
, Zend\Filter\StringToLower
or just strtolower(...)
)。嗯,但是在这里应该在哪里以及如何使用它们?
您应该使用新的 under_score
命名约定更新所有数据库列名称,数据库适配器将自动查询数据库以获取此信息。
然后为了 'map' 新 column_name
对象 属性 propertyName
映射器需要一个对象水化器。
default mapper is ClassMethods
, which out of the box supports the conversion to underscore separated keys, using the filter classes you mentioned。
因此命名应该就可以了,你只需要将 true
传递给水化器的构造函数 (underscoreSeparatedKeys
),这在你创建映射器时可以很容易地完成。