CakePHP - 如何一次通过记录保存单个 hasMany,每个 hasMany 有多个 belongsTo 记录?

Posted

技术标签:

【中文标题】CakePHP - 如何一次通过记录保存单个 hasMany,每个 hasMany 有多个 belongsTo 记录?【英文标题】:CakePHP - How to save single hasMany through record with many belongsTo records per hasMany at once? 【发布时间】:2014-01-25 16:59:41 【问题描述】:

我的模型本质上是

所有者有一个相册 资产有很多专辑 专辑归所有者 专辑属于资产

“album”中的记录将资产与所有者相关联,即“链接”,其中包含位置等额外信息,就像 cakephp 示例在此处所做的那样:hasMany through (The Join Model)。两个问题 - 文档演示通过 hasMany/relationship 控制器保存,而不是任何一端,在我的情况下,第一个模型有一个记录,而后者有很多(在一次保存中)。

隔离后,我可以以一种形式上传多个资产。然后控制器调用 saveManyIndi​​vidually(),这是资产模型中的一个方法,它通过循环上传每个资产以及相应的数据库记录。

我想在创建新所有者时执行此操作,因此所有者表单允许上传多个资产(同时保存相应的记录)。然后需要为每个资产记录创建一个专辑(链接)记录,外键是唯一的,单个 owner_id 贯穿所有,并且每个中有不同的asset_id。

我在 Owner 控制器中看不到一个可靠的 saveAssociated 方法。也许我可以在 beforeSave 中使用asset->saveManyIndi​​vidually 方法?

我可以进一步澄清这是不清楚的。

【问题讨论】:

【参考方案1】:

我认为最好的方法是分离控制器中的操作:

    创建所有者 上传资产并为其保存记录 保存所有者 ID 和资产记录 ID 之间的关联

我还没有时间做这个,但如果有更好的方法,我会编辑。

【讨论】:

以上是关于CakePHP - 如何一次通过记录保存单个 hasMany,每个 hasMany 有多个 belongsTo 记录?的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp - 创建记录但没有数据的保存方法

Cakephp:使用一个comman字段将多条记录添加到单个模型

CakePHP - 如何在保存时将关联记录添加到模型中?

CakePHP 使用 saveAll:如何使用 HABTM 链接记录保存额外数据?

是否可以使用 Cakephp 中的 saveAll 一次将所有相关记录插入到 HABTM 中?

如何使用 CakePhp 克隆/复制 sql 记录?