【问题标题】:MVC pattern usual practice for saving more than one model in a transactionMVC 模式在事务中保存多个模型的通常做法
【发布时间】:2012-10-16 14:19:35
【问题描述】:

我想在一个事务中保存两个模型,但它将用于多个视图。

我应该将该交易放入其中一个模型中吗?或者我应该以某种方式重用控制器操作?

在这种情况下,MVC 模式的最佳实践是什么?

注意:我的视图由多个模型组成。

【问题讨论】:

  • 我总是将我的交易保存在控制器中。有时你必须同时使用多个东西。
  • 但这正是问题所在,因为我必须将同一事务的代码复制到多个非 DRY 控制器,并且我觉得还有另一种(更好的)方法可以做到这一点。
  • 如果在 2 个地方使用相同的功能,您可以而且绝对应该使用单个控制器/动作

标签: php yii transactions yii-cmodel


【解决方案1】:

这取决于您的业务逻辑是否告诉您每次保存模型 A 时,模型 B 也应该更新/创建。然后将事务放入您的模型中,这样无论您在哪里调用它(控制器、CLI),它对于您的逻辑都是正确的。

另一方面,如果此事务仅对当前用户请求重要,则将其放入您的控制器中。

此时视图无关紧要,您的视图中可以有任意数量的模型。它与您的业务逻辑无关。

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多