2016-09-22 80 views
0

我正在cakephp 2.3.0中開發我的應用程序,我已經看過這裏的許多帖子,並檢查cakephp書,並且據我所見,兩個數組都可以正確設置,但是當它保存它時只保存第一個數組['TaskSchedulerPendingEmailBatch']任何幫助將不勝感激。cakephp saveAssociated只有部分工作

模型

TaskSchedulerPendingEmail

entervar $belongsTo = array(
    'TaskSchedulerPendingEmailBatch' => array(
     'className' => 'TaskScheduler.TaskSchedulerPendingEmailBatch', 
     'foreignKey' => 'task_scheduler_email_batch_id', 
     'counterCache' => 'pending_count', 
     'counterScope' => array(
      'TaskSchedulerPendingEmail.completed' => null, 
     ) 
    ) 
); 

var $hasMany = array(
    'TaskSchedulerEmailAttachment' => array(
     'className' => 'TaskScheduler.TaskSchedulerEmailAttachment', 
     'foreignKey' => 'task_scheduler_email_id', 
     'dependent' => true, 
     'exclusive' => true 
    ) 
); 

TaskSchedulerPendingEmailBatch

var $belongsTo = array(
    'TaskSchedulerTask' => array(
     'className' => 'TaskScheduler.TaskSchedulerTask', 
     'allowEmpty' => true 
    ) 
); 

var $hasMany = array(
    'TaskSchedulerPendingEmail' => array(
     'className' => 'TaskScheduler.TaskSchedulerPendingEmail', 
     'foreignKey' => 'task_scheduler_email_batch_id', 
     'dependent' => true, 
     'exclusive' => true 
    ) 
); 

外殼任務代碼

$dataALL['TaskSchedulerPendingEmailBatch']['task_scheduler_task_id'] = $ts_mailout_info[0]['TaskSchedulerMailout']['task_scheduler_task_id']; 
     $dataALL['TaskSchedulerPendingEmailBatch']['name'] = $ts_class_name[0]['TaskSchedulerClass']['name'].' from "'.$ts_mailout_info[0]['TaskSchedulerMailout']['name'].'"'; 
     $dataALL['TaskSchedulerPendingEmailBatch']['pending_count'] = 1; 
     $dataALL['TaskSchedulerPendingEmailBatch']['sent_count'] = 0; 
     $dataALL['TaskSchedulerPendingEmailBatch']['attempt_count'] = 0; 
     $dataALL['TaskSchedulerPendingEmailBatch']['error'] = 0; 

     $dataALL['TaskSchedulerPendingEmail'][0]['task_scheduler_task_id'] = '1'; 
     $dataALL['TaskSchedulerPendingEmail'][0]['created'] = getdate(); 
     $dataALL['TaskSchedulerPendingEmail'][0]['template'] = $ts_mailout_info[0]['TaskSchedulerMailout']['template']; 
     $dataALL['TaskSchedulerPendingEmail'][0]['email_format'] = $ts_mailout_info[0]['TaskSchedulerMailout']['email_format']; 
     $dataALL['TaskSchedulerPendingEmail'][0]['to'] = $pdf_form['User']['email']; 
     $dataALL['TaskSchedulerPendingEmail'][0]['from'] = $ts_mailout_info[0]['TaskSchedulerMailout']['from']; 
     $dataALL['TaskSchedulerPendingEmail'][0]['subject'] = $ts_mailout_info[0]['TaskSchedulerMailout']['subject']; 
     $dataALL['TaskSchedulerPendingEmail'][0]['title_for_layout'] = $ts_mailout_info[0]['TaskSchedulerMailout']['title_for_layout']; 
     $dataALL['TaskSchedulerPendingEmail'][0]['message'] = '<p>job id: ' . $pdf_form['Job']['id'] . '</p> <p>descrption: ' . $pdf_form['Job']['description'] . '</p> <p>status: ' . $pdf_form['Job']['status_id'] . '</p>'; 
     $dataALL['TaskSchedulerPendingEmail'][0]['error'] = '0'; 




    $this->TaskSchedulerPendingEmailBatch = ClassRegistry::init('TaskSchedulerPendingEmailBatch'); 
    $this->TaskSchedulerPendingEmailBatch->saveAssociated($dataALL); 
+0

請編輯您的文章併爲兩個表添加表CREATE語句(或列名稱和數據類型)。另外,發佈'pr($ this-> TaskSchedulerPendingEmailBatch-> getAssociated());'在你的動作的某處插入輸出。 –

回答

0

陣列結構你試試ing保存爲hasMany的關係,但是您使用的型號爲TaskSchedulerPendingEmail來保存陣列,其中belongsToTaskSchedulerPendingEmailBatch

嘗試用

$this->TaskSchedulerPendingEmailBatch->saveAssociated($dataALL); 

而不是

$this->TaskSchedulerPendingEmail->saveAssociated($dataALL, array('deep' => true)); 

節約您可以留下array('deep' => true)出來,因爲你不保存嵌套模型。

+0

感謝您的快速回放,對不起,這是我的不好,我發佈這個問題時嘗試不同的選項。既然你發現我的錯誤,我檢查並重新運行代碼(我已經更新了問題),但它仍然無法工作,它保存了TaskSchedulerPendingEmailBatch數組,但沒有另一個,我沒有任何錯誤,任何進一步的幫助將是大。 – Ravi