【发布时间】:2013-07-01 16:46:13
【问题描述】:
我目前创建了一个 Helper (FieldFormatterHelper),以帮助在各种视图中对某些类型的数据(日期、布尔值、枚举类型等)进行一致的格式设置。
特别是我使用整数在 MySQL 中存储某些枚举类型,然后在我的视图中显示相应的字符串值。我现在遇到的问题是,虽然这个帮助程序适用于我的视图,例如管理用户从站点后端访问的“视图”和“索引”视图,但我在几个创建的模型中也有 afterSave() 方法在前端渲染 Mustache 的 JSON 输出。
我或多或少地了解 MVC 的核心思想和基本论点,例如,不要尝试从模型中访问 View Helper,但我需要对 Helper 提供的功能进行某种通用访问。当然,我可以在我的前端 JavaScript 和其他我可能需要它的地方定义我的枚举类型映射,但这违反了 DRY 原则,最终维护起来会很痛苦。
所以,问题是:如果不适合从我的模型中访问/加载我的助手,我应该在哪里以及如何封装此功能,以便我的模型和各种视图都可以使用它?强>
理想情况下,我可以继续使用我现有的FieldFormatterHelper——也许修改为这个新容器的包装器。
任何关于 CakePHP 和 MVC 方式的一般指导将不胜感激。谢谢。
【问题讨论】:
标签: php cakephp cakephp-2.0 dry helper