문제

한 번에 여러 협회를 만들고 있으며 저축과 관련하여 몇 가지 문제가 있습니다.

다음 코드가 있습니다.

<?php
foreach($userData as $user) {
    $data = array('User' => array('id' => $user['id']), 'Site' => array('id' => $user['site_id']));
    $this->User->save($data);
}
?>

항상 동일한 문제에 직면하지만 데이터 배열을 다른 방식으로 형식화하는 실험을했습니다. 새 항목이 삽입되거나 현재 항목이 업데이트되면 이전 항목이 이동합니다.

트리거하려면 동작이 필요하지만 다음을 사용할 수 있습니다.

$this->User->SiteUser->save($data);

편집 : $ this-> user-> create (); 많이하지 않는 것 같습니다.

도움이 되었습니까?

해결책

IRC는 일단 무엇이 잘못되었는지를 해결하는 데 도움을주었습니다. 독특한 키가 설정되었습니다 거짓 모든 것이 올바르게 저장할 수있었습니다.

//In the user model
var $hasAndBelongsToMany = array(
  'Site' => array(
    'className' => 'Site',
    'unique' => false
  )
);

다른 팁

재설정 해보세요 id 새로운 전에 save(), 아마도 두 모델에서 :

$this->User->id = null;

케이크는 세트를 기반으로 항목을 업데이트 할 것인지 삽입할지 여부를 결정합니다. id, 그리고 save() 설정합니다 id 자동으로. 이유가 확실하지 않습니다 create() 당신을 위해 이것을 돌보지 않습니다.

또한 HABTM 데이터를 저장하려면 사용해야합니다. saveAll() 대신에 save(). 또한 참조하십시오 이 질문.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top