繁体   English   中英

cakephp:使用saveAll(),未保存导入的(非形式相关的)关联数据

[英]cakephp: with saveAll(), imported (non-form-related) associated data not saving

我的问题与从远程源中提取数据并将其保存到本地数据库有关。 使用saveAll() ,可以正确保存父数据,但不能正确保存子数据。

protected function _saveLocal($_rekeyedData) {
        //Set the invoice header and line items models
        if (!isset($this->LocalHeader)) {
            $this->loadModel('LocalHeader');
            $this->LocalHeader->create();
//            $this->LocalHeader->set($_rekeyedData);
            if (!isset($this->LocalDetail)) {
                $this->loadModel('LocalDetail');
                $this->LocalDetail->create();
            }
        }

        if ($this->LocalHeader->saveAll($_rekeyedData, array('validate' => 'first'))) {
            $this->Session->setFlash('Your data has been saved.');
        } else {
            $this->Session->setFlash('Data load failed.');
        }
        debug( $this->LocalDetail->invalidFields() );
    }

在此函数中,我加载模型,然后尝试saveAll() 样本记录如下所示:

[1] => Array
    (
        [LocalHeader] => Array
            (
                [SOPNUMBE] => CR014076             
                [DUEDATE] => 2012-04-10 00:00:00
                [DOCDATE] => 2012-04-10 00:00:00
                [DOCAMNT] => 12000.00000
                [SUBTOTAL] => 12000.00000
            )

        [LocalDetail] => Array
            (
                [0] => Array
                    (
                        [ITEMNMBR] => BASIC SERVICE                  
                        [QUANTITY] => 1.00000
                        [UOFM] => EA       
                        [UNITPRCE] => 12000.00000
                        [TAXAMNT] => .00000
                        [CONTSTARTDTE] => 1900-01-01 00:00:00
                        [CONTENDDTE] => 1900-01-01 00:00:00
                        [SOPNUMBE] => CR014076             
                    )

            )

    )

保存的全部是LocalHeader记录。 我的直觉是它与array('validate' => 'first') 我想我在使用saveAll()时需要做一些单独的事情,例如validateMany,但是我不记得在哪里看到这样的东西或者是我刚刚完成的。

我已经阅读了SO中的许多相关问题,但是所提供的解决方案都不适合我。

任何帮助表示赞赏。 请随时询问您是否有任何问题。

编辑:这是标头模型 ,这是详细模型

我认为问题在于这些记录都不存在。 根据文档

如果系统中还没有关联的模型记录(例如,您想同时保存一个新的User及其相关的Profile记录),则需要先保存主模型或父模型。

您可以在此处通过示例阅读更多内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM