Hallo zusammen,
ich habe einen Checkboxwizard, der in ein serialisiertes Feld schreibt. Klappt beim Anlegen auch wunderbar. Leider speichert er Änderungen nicht (Oder liest diese nicht korrekt ein). Jetzt musste ich den save_callback nutzen und wollte die Änderung dort direkt speichern, funktioniert aber auch nicht.
Hier der DCA:
Code:
'teams' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_lm_contests']['teams'],
'exclude' => false,
'filter' => true,
'inputType' => 'checkboxWizard',
'options_callback' => array('tl_lm_contests', 'getTeams'),
'eval' => array('multiple'=>true),
'save_callback' => array
(
array('tl_lm_contests', 'fillITable')
)
),
Hier die Funktion:
Code:
public function fillITable($varValue, DataContainer $dc)
{
$ret=$this->Database->prepare("DELETE FROM tl_lm_team_to_contest WHERE contest=?")->execute($dc->activeRecord->id);
$arrTeams=deserialize($varValue);
foreach($arrTeams as $team){
$ret=$this->Database->prepare("INSERT INTO tl_lm_team_to_contest (team,contest) VALUES (?,?)")->execute($team,$dc->activeRecord->id);
}
$ret=$this->Database->prepare("UPDATE tl_lm_contests SET teams=? WHERE id=?")->execute($varValue,$dc->activeRecord->id);
}
Das Einfügen in die Zwischentabelle klappt ohne Probleme, also an den Variablen und den Werten kann es nicht liegen.
Jemand eine Idee, wie ich das Feld gespeichert bekomme?
Danke
Lesezeichen