CakePHP habtm tasarrufu

2 Cevap php

Ben tek seferde birden fazla dernek oluşturma ve tasarruf söz konusu olduğunda bir kaç sorun vardır.

Ben aşağıdaki kodu vardır:

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

Ben hep aynı sorunlarla karşılaşmaya farklı şekillerde de olsa veri dizisi biçimlendirme ile denemişlerdir. Bir yenisi takıldığında önceki girişleri taşındı almak veya mevcut bir güncellenir ya.

Ben tetiklemek için bir davranışı gerek rağmen ben sadece aşağıdaki kullanabilirsiniz.

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

Düzenleme: Ayrıca $ this-> User-> create (); çok fazla bir şey görünmüyor.

2 Cevap

IRC unique tuşuna false her şey düzgün kaydetmek başardı ayarlanmış bir kez, neyin yanlış olduğunu işe yardımcı oldu.

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

Önce id sıfırlamayı deneyin save(), muhtemelen her iki modelde yeni:

$this->User->id = null;

Kek güncellemek veya eklemek girdileri kümesi id dayalı, ve save() id otomatik olarak ayarlar karar verir. Değil emin niçin create() bu sizin için dikkat etmez.

Eğer HABTM verileri kaydetmek istiyorsanız Ayrıca, yerine save() ve saveAll() kullanmanız gerekir gerekir. Ayrıca bkz: this question.