2

我是一名老 CFML 开发人员,对 CF on Wheels 和 MVC 编程很陌生。我很快就学会了,但对我来说并不明显的一件事是如何提供一个表单来选择性地更新多个数据库表记录(模型)。我特别想为用户信息和用户个人资料信息设置一个选项卡式表单,前者是必需的,后者不是。此数据存储在两个不同的一对一表中。为了调用两个“新”或“编辑”视图,运行 2 个“创建”或“更新”过程,影响两个不同的表,我需要什么设置。或者我认为这一切都错了。

更新:添加更多关于我正在尝试做的事情的信息。为简单起见,我将坚持使用 2 个选项卡和 2 个表格,尽管在这种情况下我真的至少要查看 3 个。

所以我有一个 Users 表和一个 UserProfiles 表,我有一个名为 User.cfc 和 UserProfile.cfc 的模型,它们是一对一相关的,而 UserProfile 依赖于用户。很标准的东西。对于每个我都有控制器:Users.cfc 和 UserProfiles.cfc,每个都包含操作。添加、编辑、创建、更新、做显而易见的事情(添加和编辑显示表单)。我有部分显示每个的添加/编辑表单字段,所以已经准备好了。现在,我想创建一个有效的添加/编辑表单,可以同时更新两个表。标签并不重要。实际上它可能都在一页上。

所以从概念上讲,我正在做类似的事情:

#startFormTag(action=???)#
#includePartial("form_user_add-edit")#
#includePartial("form_userprofile_add-edit")#
<button type="submit" class="btn">#operation#</button>
#endFormTag()#

我是否需要创建一个单独的控制器操作,该操作基本上结合了两个不同控制器的创建和更新操作?

提前感谢一位高兴和热切的 CFWheels 新手...

布赖恩

4

2 回答 2

1

如果所有数据都通过hasManyhasOne关联相关,我建议查看嵌套属性。

http://cfwheels.org/docs/1-1/chapter/nested-properties

但是,如果您是新手,则可能要避免这样做,直到您解决了一些更简单的问题。

于 2012-06-14T13:14:31.013 回答
0

我猜你说的是代表这两个表的两个模型,可能使用hasOne关联。模型允许您验证数据,这使得控制器更简单。这样,您可以在两个选项卡下创建两个表单,并将记录的主键保留为隐藏字段。控制器可以运行验证并重新显示表单(部分可能会有所帮助)......等等,我只是通过参考

我意识到这个答案和您的问题一样非常笼统。我建议你继续尝试一些东西,看看它是如何工作的。

之后用代码示例更新您的问题,并询问您是否有一些具体问题。例如,在 CFWheels 中验证和显示错误可能有点棘手。

于 2012-06-13T19:49:37.630 回答