cakephp-3 有多种形式的数据保存

Posted

技术标签:

【中文标题】cakephp-3 有多种形式的数据保存【英文标题】:cakephp-3 hasmany form data save 【发布时间】:2014-06-23 09:58:01 【问题描述】:

我有两个表格简历和链接。简历与链接有很多关系。我想为单个简历保存许多链接。

我的 $this->request->data 数组是这样的

Array
(
[alternate_email] => 
[mobile] => 23232
[level] => Student
[youtube] => 
[links] => Array
    (
        [0] => Array
            (
                ['link'] => www.google.com
                ['user_id'] => 1
            )

        [1] => Array
            (
                ['link'] => abc.com
                ['user_id'] => 1
            )

    )

)


$resume = $this->Resumes->newEntity($this->request->data);
if ($this->Resumes->save($resume)) 
// return true;

这是有效的,我的数据已正确保存在简历表中,但链接表中的数据保存如下:

id | resume_id | user_id  | link
1  | 1         |          |

我要喜欢

id | resume_id | user_id | link
1  | 1         |         | www.google.com

【问题讨论】:

在用户表中是否有字段resume_iduser_id 在我的简历表字段中存在 user_id。 您在数组结构中显示 user_id 和在表格格式中显示 resume_id 是否相同? 你真的需要用一些细节来丰富你的问题。您使用的是最新的 3.x 版本吗?生成的查询是什么样的? debug($resume) 在保存前后说了什么(请用调试结果更新您的问题,不要将它们放在 cmets 中)?任何验证错误?你有实现之前的保存逻辑吗?为什么不希望保存user_id(如您的“我想要喜欢”示例所示)? 好吧,除了问题应该是独立的,即不依赖于外部信息之外,交叉发布是非常不礼貌的,因为有人在你的问题上浪费他/她的时间。 【参考方案1】:

尝试这样做:

$resume = $this->Resumes->newEntity($this->request->data, ['associated' => ['Links']]);

if ($this->Resumes->save($resume, ['associated' => ['Links']])) 
    // return true;

【讨论】:

【参考方案2】:

转到您的 Model/Entity/Link.php 并将 link 添加到 protected $_accessible 数组

【讨论】:

以上是关于cakephp-3 有多种形式的数据保存的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 3 - 保存前的数据关联

将数据保存到 2 个表中 cakephp 3

CakePHP 3.0 保存我的关联数据

Cakephp 3.7 hasOne字段数据不保存

在 Cakephp 3 中保存关联模型

Cakephp 3 保存关联属于ToMany