【问题标题】:Should Service methods return anything to your Controllers服务方法是否应该向您的控制器返回任何内容
【发布时间】:2013-05-21 16:55:46
【问题描述】:

在 MVC 应用程序中,您的 Service 方法是否应该向控制器返回任何内容?

假设我有一个Recognition 服务,它有一个register($firstName, $lastName...) 方法,它是否应该向我的控制器返回任何内容?

【问题讨论】:

    标签: php model-view-controller


    【解决方案1】:

    如果register 不起作用会怎样?它会抛出异常吗?您确实希望有某种信号表明某事不起作用或操作已成功完成。

    成功/失败返回 true/false 有助于向您表明某些事情已经完成。

    【讨论】:

    • 感谢您的回复。如果 register() 方法失败并返回 false,你认为应该在控制器中做什么?
    • 这将取决于您的用例。重定向到错误控制器,向视图提供错误消息。这取决于你。
    • @Schleis ,控制器为什么要关心注册是否失败? MVC 中负责“展示”的部分是 Views。基本上 - 这是完全错误的。
    • @tereško 该服务向控制器返回成功/错误消息,该消息被传递到视图并显示。或者控制器停止处理请求并给视图显示一条错误消息。
    • 控制器不会将任何消息从模型层传递到视图:en.wikipedia.org/wiki/File:MVC-Process.png 听起来在您当前的设置中,您实际上并没有视图。只赞templates
    【解决方案2】:

    不,服务不应向控制器返回任何内容。模型的状态应该由视图检查。如果控制器执行的操作以某种方式失败,它只会影响视图。

    控制器负责改变模型的状态。 不是将所述状态传递给视图,也不是对模型状态的变化做出反应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2015-08-29
      • 2021-11-30
      • 1970-01-01
      相关资源
      最近更新 更多