2012-08-23 2 views
1

Cookbook에 설명 된 hasMany through 메소드로 정의 된 두 모델 InvoicePosition 사이에 다 대다 관계가 있습니다.한번에 복수 hasMany 저장하기

이제 송장을 만들 때 해당 송장에 여러 위치를 하나의 save() 운영에 저장하려고합니다. 이런 일 :

$data = array(
    'Invoice' => array(
    // invoice stuff 
), 
    'InvoicesPosition' => array(
    [0] => array(
     // additional meta information 
     'Position' => array(
     // position stuff 
     // ... 
    ), 
    ), 
    [1] => array(
     // ... 
     'Position' => array(
     // position stuff 
     // ... 
    ), 
    ), 
    // and so on 
), 
); 

$this->Invoice->saveAll($data, array('deep' => true)); 

결과 2 개 위치가 (즉 청구서 표 1 개 새로운 기록 위치 테이블 (2 개) 새로운 기록하고있는 2 개 개의 새로운 기록 수단에 연결하여, 하나의 새로운 송장되어야 테이블 조인).

Cake의 내장 메소드를 사용할 수 있습니까? 또는 해당 모델의 saveAll() -method를 덮어 써야합니까?

+0

질문에서 잘못된 코드를 수정하기가 다소 이상한데, 처음에는 올바른 것처럼 보이고 원래 질문은 그대로 두는 것이 좋으며 승인 된 답변은 변경해야 할 문제가있는 다른 사용자에게 표시됩니다. – Ceeram

+0

다음 번에이를 염두에 두십시오. 죄송합니다. – nahri

답변

1

saveAll() 메소드에서 'deep' => true 옵션을 사용하십시오.

$this->Invoice->saveAll($data, array('deep' => true)); 
+0

아니, 그건 내 문제를 해결하지 않습니다. – nahri

+0

편집 된 코드를 살펴보십시오. 감사. –

+0

아, 고마워. 나는'data' 배열을 편집해야했습니다. 위의 코드를 참조하십시오. – nahri