【问题标题】:return inside controller actions MVC cakePHP返回内部控制器动作 MVC cakePHP
【发布时间】:2012-01-23 20:40:06
【问题描述】:

我有一个简单的问题。让控制器操作返回某些东西(使用 return $something;)真的是个坏主意。这是好的还是坏的 MVC 实践?

我知道良好的 MVC 实践要求控制器将数据传递给视图,但如果我只有一个不使用任何视图的独立函数怎么办?我不能只返回那个函数的值吗?

提前感谢专家

【问题讨论】:

  • 如果您不使用“视图”,您如何将数据返回给用户?
  • 它只是一个独立的函数,它执行不需要任何视图的特定任务(例如删除函数)。删除控制器操作没有任何视图。
  • 如果它不需要视图,你为什么要返回任何东西?如果它是一个删除功能,您可以设置一个 flash 消息,然后在操作结束时重定向 - 这不需要视图。
  • @user765368 ,实际上“良好的 MVC 实践”要求视图从模型层请求数据。控制器应该只改变状态,而不是收集数据。查看 MVC 是如何定义的。

标签: php model-view-controller cakephp controller


【解决方案1】:

好的,从控制器操作返回值并不是一个“坏主意”,因为它是“这不是 CakePHP 的工作方式”。如果您想将响应发送给用户,您需要将其提供给“视图”。在您的示例中,您有一个不需要将视图发送回用户的删除操作。我会证明它确实需要发送视图。也许您发回的“视图”只需要一个 JSON 响应,说明删除是否成功,而不是整个 HTML 文档。

“视图”是将数据发送给用户的内容。让“视图”负责这些职责,不要试图让控制器开始做太多事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多