所以我有一个高度定制的 CMS 类型系统,用户可以在其中管理页面上的内容。在大多数情况下,一切都是模板化的,然而,主页是独一无二的,它具有常规页面所没有的额外的、可编辑的内容。
我为此想到的两个解决方案是:
1) 我可以在数据库中添加一个新模型、控制器和表,使其成为一个全新的组件。然而,一页似乎很麻烦。
2)我可以将主页缺少的列添加到一般的“页面”表中,但这似乎不是最理想的,因为附加列只会用于主页。
处理这种情况的最佳方法是什么?还有其他我没有想到的方法吗?
所以我有一个高度定制的 CMS 类型系统,用户可以在其中管理页面上的内容。在大多数情况下,一切都是模板化的,然而,主页是独一无二的,它具有常规页面所没有的额外的、可编辑的内容。
我为此想到的两个解决方案是:
1) 我可以在数据库中添加一个新模型、控制器和表,使其成为一个全新的组件。然而,一页似乎很麻烦。
2)我可以将主页缺少的列添加到一般的“页面”表中,但这似乎不是最理想的,因为附加列只会用于主页。
处理这种情况的最佳方法是什么?还有其他我没有想到的方法吗?
恕我直言,这实际上取决于站点以及主页和其他页面之间的差异以及主页具有的 DB 交互。一般是一个很难回答的问题。
我过去做过的一件效果很好的事情是在 CMS 工具中有一个“主页”记录(假设您可以访问一个“内容”字段)。然后为主页构建自定义控制器/视图——毕竟它是主页。
添加您的自定义功能、自定义布局、格式等。然后从 CMS 中的“主页”记录中提取“内容”字段并将其插入到相关位置。
这样,CMS 人员仍然可以调整主页消息,但您可以保持完整的数据库交互性。
希望这是有道理的。
我不建议反对#2。好像很浪费
我最终只是为通用的 1-off 页面创建了一个模型、控制器、表格等,这些页面很灵活,因为我怀疑将来我需要额外的独立页面。主页只是现在在控制器中具有特殊路由方法的页面之一。