【问题标题】:How should changes to MVC objects be propagated?应该如何传播对 MVC 对象的更改?
【发布时间】:2011-09-08 10:36:02
【问题描述】:

这是对上一个问题的跟进:Should sub-objects be fetched in the Model or the Model Mapper?

假设用户可以拥有一个或多个 PhoneNumber 对象。根据上述问题的答案,这些子对象将在用户实例化时被获取。如果我要从用户的phoneNumbers 属性(PhoneNumbers 数组)中删除一个 PhoneNumber,或者修改其中一个 PhoneNumber 对象,那么应该将这种更改传播到哪里?

我应该手动删除/更新数据库中的子对象,还是用户应该在保存时自动执行此操作?谢谢,

【问题讨论】:

  • PhoneNumber ojects 似乎不是解决方法,因为 PhoneNumber 最多是一个简单的“字符串”。伊莫。
  • 我同意。这只是一个例子(一个愚蠢的例子,我意识到)。它可以是任何依赖于用户的对象,而不是 PhoneNumber。顺便说一句,这根本不是我的申请。只是基本的例子。
  • 好吧,我试着根据我的经验添加一个答案,但是用这么少的细节很难理解这个东西

标签: php model-view-controller zend-framework


【解决方案1】:

让我们看看我的方法是否正确。

用户已登录并且在他的个人资料页面上。在此页面上,用户单击“删除此电话号码”链接。

在执行该操作的页面上,它将执行DELETE FROM phones ETC

现在执行此操作后,当您加载用户时,构造函数将加载电话号码等,并且考虑到您提前执行了 DELETE sql,当前用户对象当然不会有刚刚删除的电话号码。

这至少是我的 MVC 框架中发生的事情。

【讨论】:

  • 好的,但是,它应该如何执行更新?我加载了用户对象,它获取了它的电话号码。我换个号码。我应该在特定的电话号码上调用更新,还是用户本身将更新其电话号码?
  • @Simple:用户本身将更新其电话号码。
  • 但我会指出另一种方式。在执行电话号码等操作之前,您不应该加载所有用户对象。您应该在更新电话号码之前加载用户对象..此时您将拥有同步数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 2013-10-16
  • 2011-02-21
  • 2022-06-13
  • 2021-08-06
  • 1970-01-01
相关资源
最近更新 更多