CakePHP 如何为用户-地图-属性一次在链接表中保存多条记录?

Posted

技术标签:

【中文标题】CakePHP 如何为用户-地图-属性一次在链接表中保存多条记录?【英文标题】:CakePHP How can I save many records in a link table at once for user - map - attributes? 【发布时间】:2014-02-04 22:50:48 【问题描述】:

我有三个表/模型:

User(id)
Map(id, user_id, attribute_id)
Attribute (id, name)

地图属于其他人,其他人有很多地图。

我希望用户(通过用户控制器和用户视图)一次创建多个关联链接。假设用户表单(添加/编辑)有 10 个属性字段,都链接到同一个表,我该怎么做?

我需要一次在 Map 中保存多达 10 条记录。首先,我不确定该字段应该是什么 - create('Attribute.name')?此外,cake 向每个输入输出相同的输入名称,因为它们指向相同的字段 - 解决此问题的最佳方法是什么?

我已经阅读了相关文档,但没有从中得到太多。

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用saveAssociated() method。根据链接给出的说明准备一个输入数组,直接使用$this->User->saveAssociated($your_array, array('deep' => true));

【讨论】:

那个链接没有用。查找我是否要保存用户或属性,但我不这样做,我需要保存它们之间的链接。我可以看到如何手动执行此操作,为每个传递一个 id,但我认为 cake 应该能够自动执行此操作?这是一个 hasManyThrough

以上是关于CakePHP 如何为用户-地图-属性一次在链接表中保存多条记录?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security OAuth2:如何为两类用户提供两个单独的登录链接?

如何为多个用户存储信息

如何为 iOS 应用程序构建内部地图导航?

CakePHP 1.3 关联

如何为连接表中的其他属性创建多对多 Hibernate 映射?

如何一次在多个表中添加行?