首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在控制器中调用控制器?

在控制器中调用控制器?
EN

Stack Overflow用户
提问于 2009-09-21 21:45:03
回答 4查看 3.5K关注 0票数 3

就最佳实践而言,这是推荐的吗?我有一个注释控制器+模型,需要在项目和配置文件控制器中调用它。comments控制器自动加载comments模型。

直接从items和profile控制器调用comments控制器是否可以接受,或者是调用comments模型的“最佳实践”方式?

我之所以这样问,是因为在kohana中,视图不是一个单独的类,所以如果我在另一个控制器中调用一个控制器,我最终会得到两个视图。另一方面,如果我只是调用模型,那么在items和profiles控制器中就会有重复的代码。

所有MVC专家的帮助!=)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-22 00:40:44

一般来说,我倾向于“脂肪模型”的方法。

我不确定你真正担心复制的代码是什么。

有几种方法可以做到这一点:

第一种方法:-询问你的评论模型以返回一些评论。-将评论数据传递到视图中。-在视图中呈现注释,可能使用一些视图帮助器

第二种方法:-认识到你的视图没有理由不能直接与你的模型对话。-编写一个视图帮助器,直接从模型中获取所需的数据,并进行渲染。

我更喜欢第二种方式。有些人在让他们的视图层与模型对话时遇到问题(以只读的方式!),但我不是其中之一。

票数 3
EN

Stack Overflow用户

发布于 2009-09-22 08:17:07

如果你使用Kohana 3,你可以从HMVC特性中获益。您可以在控制器中执行控制器。

http://forum.kohanaphp.com/comments.php?DiscussionID=2768

查看上面的链接以获取一些示例

票数 6
EN

Stack Overflow用户

发布于 2009-09-22 00:25:57

我要说的是,这取决于你的控制器返回什么。

如果你的控制器可以返回DTO/模型,那么当然,调用一个控制器是一个好主意。

您的控制器为您的功能定义了一个严格的、有文档记录的、希望是稳定的入口点。因此,只要不更改Controller方法的签名,您就可以完全忽略注释的实现,或者随意更改它。

然而,如果你的控制器不能返回原始数据,那么它肯定是prolematic的,因为你得到的是html (或其他标记)。这意味着你必须将html直接输入到你想要的视图中,或者从中提取数据。这两个都不是一个好主意。

对原始html进行管道连接意味着,如果您更改了注释的视图,那么配置文件模块上的注释显示将不可避免地发生变化。这可能是你想要的,但我更倾向于灵活性。

现在,如果您想要数据,就必须从视图返回的标记中提取数据,这很繁重,而且会适得其反。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1457056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档