Empfehlungen: Erweiterte Suche

SaveAll löscht Daten bei HABTM

Daten auslesen, verarbeiten und den Views übergeben

SaveAll löscht Daten bei HABTM

Beitragvon spearhead » Sa 14. Mai 2011, 18:20

Hallo,

habe da mal eine Frage:

Ich habe eine HABTM Relation zwischen den Tabellen Receivers und Groups. Analog dazu gibts eine View wo ich Receivers verschiedenen Groups hinzufügen kann.

Daraus generiert sich ein Array mit folgender Struktur:

Code: Alles auswählen
Array
(
    [Receiver] => Array
        (
            [0] => 1
            [1] => 2
        )

    [Group] => Array
        (
            [id] => 1
        )

)


Dieses Array speichere ich mit SaveAll ab. Leider löscht mir das Framework vorher alle vorhandenen Einträge zur Group ID anstatt das die neuen Einträge einfach hinzugefügt werden.

Kann man das irgendwie verhindern?

Hier noch der Code meines Controllers:

Code: Alles auswählen
    if(!empty($this->data)){
       
        $group_stack;
       
        foreach ($this->data['Receipients'] as $key => $value){
       
        if ($value){
       
        $group_stack['Receiver'][] = $key;
       
        }
       
        }

        $group_stack['Group']['id'] = $this->data['Receivers']['group'];
        pr($group_stack);
        $recToGrp = $this->Receiver->Group->saveAll($group_stack);
    //  pr($recToGrp);
        }
 
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: SaveAll löscht Daten bei HABTM

Beitragvon mbrod » Sa 14. Mai 2011, 23:27

Im View sollte für eine HABTM Beziehung eine multiple-select Auswahlliste benutzt werden. Schon benutzte Beziehungen sind dann hervorgehoben. Mit ctrl-Klick können dann schon benutzte Einträge abgewählt, bzw. neue hinzugefügt werden.

Dem Controller muss ja "gesagt" werden, dass die alten Werte beibehalten werden sollen.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: SaveAll löscht Daten bei HABTM

Beitragvon spearhead » So 15. Mai 2011, 19:03

kannst du mir das nochmal genauer erklären bzw. geht das nicht einfacher?
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: SaveAll löscht Daten bei HABTM

Beitragvon mbrod » So 15. Mai 2011, 19:47

Also am einfachsten ist es, wenn man sein Projekt mit der Konsole "bäckt". Da kann man alle Dateien automatisiert erstellen lassen und das Projekt funktioniert erst mal rudimentär. So habe ich jedenfalls cakephp kennen gelernt. Die einzelnen Dateien habe ich dann nach meinen Erfordernissen geändert und so lernt man, wie cakephp "tickt".
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: SaveAll löscht Daten bei HABTM

Beitragvon spearhead » So 15. Mai 2011, 20:20

Was mir bei meinem Problem jetzt nicht wirklich weiter hilft...
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: SaveAll löscht Daten bei HABTM

Beitragvon spearhead » Fr 27. Mai 2011, 19:19

Für alle die mein Problem auch haben gibts folgendes Behaviour:
http://bakery.cakephp.org/articles/bparise/2007/05/09/add-delete-habtm-behavior

lg
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: SaveAll löscht Daten bei HABTM

Beitragvon euromark » Sa 28. Mai 2011, 01:07

du kannst dir jederzeit deine eigene HABTM funktion basteln die genau dieses problem fixed
weil - in der tat - der default cake way zuerst alle löscht.. :) nervt mich auch
deswegen benutz ich kein cake habtm
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron