【发布时间】:2011-09-14 21:51:52
【问题描述】:
在我的应用程序中,我有一个用户控制器和一个配置文件控制器,每个控制器都配有表格和模型。当用户注册一个帐户时,他们将创建一个用户帐户和一个配置文件。所以他们会将数据保存到两个表中!
我该怎么做呢?由于逻辑在两个不同的模型和控制器中,当他们来编辑它时很好,因为它们是单独的位,但是当注册它时,它会如何工作变得模糊:/
有人可以帮忙吗?谢谢
【问题讨论】:
在我的应用程序中,我有一个用户控制器和一个配置文件控制器,每个控制器都配有表格和模型。当用户注册一个帐户时,他们将创建一个用户帐户和一个配置文件。所以他们会将数据保存到两个表中!
我该怎么做呢?由于逻辑在两个不同的模型和控制器中,当他们来编辑它时很好,因为它们是单独的位,但是当注册它时,它会如何工作变得模糊:/
有人可以帮忙吗?谢谢
【问题讨论】:
您可以使用 saveAll () 代替 save()。这将让您保存模型(例如用户)及其相关模型(配置文件)。
官方文档中有一个很好的简单描述:http://book.cakephp.org/view/1032/Saving-Related-Model-Data-hasOne-hasMany-belongsTo
这篇博文也很旧,但值得一读,这样你就明白了。 http://nuts-and-bolts-of-cakephp.com/2008/08/01/practical-use-of-saveall-part-1-working-with-multiple-models/
【讨论】:
$this->ModelName1->save($this->data);
$this->ModelName2->save($this->data);
只要数据变量创建正确,模型也应该正确保存它^_^
【讨论】:
模型之间的关系很重要。你不说你有没有。如果不是,您应该定义如下关系:
User hasOne Profile
Profile belongsTo User
这将允许您从另一个模型访问一个模型,反之亦然。根据 boobyWomack 的建议,您应该查看this link,它提供了 saveAll 方法的示例。
干杯
【讨论】: