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 控制器保存,而不是任何一端,在我的情况下,第一个模型有一个记录,而后者有很多(在一次保存中)。
隔离后,我可以以一种形式上传多个资产。然后控制器调用 saveManyIndividually(),这是资产模型中的一个方法,它通过循环上传每个资产以及相应的数据库记录。
我想在创建新所有者时执行此操作,因此所有者表单允许上传多个资产(同时保存相应的记录)。然后需要为每个资产记录创建一个专辑(链接)记录,外键是唯一的,单个 owner_id 贯穿所有,并且每个中有不同的asset_id。
我在 Owner 控制器中看不到一个可靠的 saveAssociated 方法。也许我可以在 beforeSave 中使用asset->saveManyIndividually 方法?
我可以进一步澄清这是不清楚的。
【问题讨论】:
【参考方案1】:我认为最好的方法是分离控制器中的操作:
-
创建所有者
上传资产并为其保存记录
保存所有者 ID 和资产记录 ID 之间的关联
我还没有时间做这个,但如果有更好的方法,我会编辑。
【讨论】:
以上是关于CakePHP - 如何一次通过记录保存单个 hasMany,每个 hasMany 有多个 belongsTo 记录?的主要内容,如果未能解决你的问题,请参考以下文章
Cakephp:使用一个comman字段将多条记录添加到单个模型
CakePHP 使用 saveAll:如何使用 HABTM 链接记录保存额外数据?