我对Kohana的HMVC模型有疑问。我非常喜欢将内容分离为相同原则(MVC)中的组件以进行扩展和更轻松创建api的想法。
虽然有一些缺点,但我正在经历失去知识。
例如,我可以使用名为新闻和类别的组件。最重要的是站点控制器,它们只委派完整的请求,并通过这些组件收集网站模板的所有html /数据。
Site controller
/ \
/ \
categories news
当我想要侧边栏的所有类别时,我可以调用:/ categories / list。当我想要一个新闻时我可以打电话/新闻/ ID。两者都返回html。
如果我有一个newsreadon站点控制器,主要任务是显示新闻文章,该控制器将获取侧栏的所有类别。接下来它将获取新闻项目。
Newsreadon
/ \
/ \
categories/list (html) news/<id> (html)
当我显示网站模板中的所有元素时,我想知道html标题标签的新闻的“标题”,但我不知道因为我返回了html。
我觉得有多种解决方案:
解决方案2似乎是最不讨厌的,并保持无国籍通信。
我真的想知道你如何以优雅的方式解决这个问题?我错过了''解决方案吗?
编辑: 有趣的阅读以了解kohana的HMVC: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/
答案 0 :(得分:0)
如果我有一个newsreadon站点控制器,主要任务是显示一个 新闻文章......
如果此控制器的目的是显示新闻文章,那么我不明白是否需要额外的控制器。考虑更改您的应用程序设计,也许Newsreadon扩展控制器以显示新闻文章。
答案 1 :(得分:-1)
由于您使用news/<id>
显示新闻,因此可能是父控制器知道新闻的ID。从那里,只需从你的模型中获取新闻标题。这将是正确的方法。尝试从子请求中提取一些数据将使您的应用程序更紧密地耦合,并且从长远来看更难以维护。