CakePHP hasAndBelogsToMany mit save() vs. saveAll()

Ich bin mit einem sehr systeminternen Datenbank mit einer CakePHP Anwendung und bisher sind meine multi-Modellen, Ansichten und Controllern funktionieren. Ich haben einen einzigartigen Tisch ( Entity ), die haben es id auf mehreren anderen Tabellen als Foreign Key entity_id

Einige Tabellen sind eins-zu-eins-Beziehungen (Wie ein Company ist eine Entity) und einige sind einer zu viel (Entity können mehrere Addresses) und so weiter.

Ich nicht/kann es nicht ändern, die Datenbank-Modell, das ist also die Struktur.

Ich habe mit saveAll() zum speichern von Daten auf die Tabellen mit input-Namen wie:

Entity.type='x' (hidden inside the view)
Company.name
Address.0.street
Address.0.city
Address.1.street
Address.1.city

... and so on ...

mein und speichern Sie alle tun all die harte Arbeit, die BEGIN TRANSACTION alle INSERTs-und a-Finale COMMIT ...

Aber jetzt habe ich einen EntityCategory das ist eine n zu n Beziehung erstellt und die volle HABTM Beziehung in das Modell.

Es funktioniert, wenn ich save() es aber nur die HABTM Beziehung, und es speichert alles, wenn ich saveAll() (nach wie vor), außer für die HABTM Bezug.

Bin ich etwas fehlt ? Wie kann ich diese korrekt ? Ich bin mit dem folgenden code heute:

if (!empty($this->data)) {
  $this->Entity->saveAll($this->data);
  $this->Entity->save($this->data);
}

Den saveAll() speichert alle Daten in verschiedenen Tabellen speichert die id in Entity->id und die save() speichert die HABTM Beziehungen, aber ich bin nicht sicher, ob es richtig ist, oder wenn es bringt mir Probleme, wenn ich eine Struktur/Modell.

Ist dies der beste Weg, es zu benutzen? Gibt es eine richtige Weise zu speichern, dass die Beziehungen innerhalb CakePHP ? Was Ihre Erfahrungen/Kenntnisse können mir sagen ?

InformationsquelleAutor Fernando Barrocal | 2008-09-29

Schreibe einen Kommentar