Cakephp에서 HABTM으로 저축
-
05-07-2019 - |
문제
한 번에 여러 협회를 만들고 있으며 저축과 관련하여 몇 가지 문제가 있습니다.
다음 코드가 있습니다.
<?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()
. 또한 참조하십시오 이 질문.
제휴하지 않습니다 StackOverflow