Frage

ich mehrere Verbände in einem Rutsch bin die Schaffung und es gibt ein paar Probleme, wenn es ums Sparen geht.

Ich habe den folgenden Code:

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

Ich habe mit der Formatierung der Daten-Array auf unterschiedliche Weise experimentiert, obwohl ich immer die gleichen Probleme stoßen. Entweder werden die vorherigen Einträge erhalten bewegen, wenn ein neuer eingesetzt wird oder die aktuelle aktualisiert wird.

Ich konnte einfach die folgende verwenden, obwohl ich ein Verhalten auslösen müssen.

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

Edit: Auch $ this-> User-> create (); scheint nicht viel zu tun.

War es hilfreich?

Lösung

Die IRC ausrechnen geholfen, was falsch war, sobald die einzigartig Schlüssel wurde auf false alles der Lage war, richtig zu speichern.

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

Andere Tipps

Versuchen Sie, die id vor einem neuen save() Zurücksetzen möglicherweise bei beiden Modellen:

$this->User->id = null;

Cake entscheidet, ob Einträge auf dem Set id basierend zu aktualisieren oder einzufügen, und save() setzt automatisch eine id. Nicht sicher, warum create() nicht Pflege für Sie diese dauert.

Auch wenn Sie HABTM Daten speichern möchten, sollten Sie saveAll() statt save() verwenden müssen. Siehe auch diese Frage .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top