2012-05-07 5 views
0

내 질문 원격 소스에서 데이터를 끌어와 로컬 데이터베이스에 저장 관련하여. saveAll()을 사용하면 상위 데이터가 올바르게 저장되지만 하위 데이터는 저장되지 않습니다. 이 기능에 CakePHP의 : 시려면(), 수입 (비 양식 관련) 관련 데이터가 저장되지

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와 같은 별도의 작업을 수행해야한다고 생각합니다. 그러나 방금 그걸 본 경우 또는 내가 방금 만든 경우를 기억하지 못합니다.

많은 관련 질문을 읽었지만 제공되는 솔루션 중 아무 것도 나를 위해 작동하지 않았습니다.

도움을 주시면 감사하겠습니다. 질문이 있으시면 언제든지 물어보십시오.

편집 : 이것은 header model이며 이것은 detail model입니다.

+0

(업데이트 됨) 모델 관계를 정의 했습니까? 'LocalDetail'에 대한 모델 검증을 정의 했습니까? –

+0

예, 두 모델을 구웠습니다. 그래서, 나는 유효성과 적절한 $ hasMany 관계가 있습니다. –

답변

0

나는 그 기록이 아직 존재하지 않는다고 생각한다. 워드 프로세서

관련 모델 기록도 아직 (예를 들어, 당신은 같은 시간에 기록 새로운 사용자 및 관련 정보를 저장할) 시스템에 존재하는 경우에 따라, 당신은해야합니다 먼저 기본 모델을 저장하거나 상위 모델을 저장합니다.

예를 들어 here을 더 읽을 수 있습니다.

+0

나는 당신이 옳다고 생각한다. 나는 그걸 조사 해왔다. 감사. –

관련 문제