【问题标题】:How to map underscored table columns to camelcased model class properties in ZF2?如何将带下划线的表列映射到 ZF2 中的驼峰模型类属性?
【发布时间】:2015-03-17 00:17:50
【问题描述】:

我正在开发一个基于Zend Framework 2Apigility 驱动的Web 应用程序。对于模型层,我使用的是 ZfcBase DbMapper

目前,我的数据库表中的列的命名与对应的模型属性完全相同。对于两者,我都使用驼峰表示法(这是第一个临时解决方案)。现在我想更正列的命名并使其不加修饰。

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

【问题讨论】:

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


    【解决方案1】:

    您应该使用新的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 传递给 hydrator (underscoreSeparatedKeys) 的构造函数,这可以在您创建映射器时非常轻松地完成。

    【讨论】:

    • 我刚刚重命名了这些列(让它们的名称再次下划线)。它有效。我可以发誓,这在以前不起作用——这就是为什么我首先将列名设为驼峰式的原因。魔术... :) 无论如何,它有效。谢谢你的好解释!
    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多