Ergebnis 1 bis 5 von 5

Thema: DCA field, dass nicht in die DB Tabelle gespeichert wird?

  1. #1
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard DCA field, dass nicht in die DB Tabelle gespeichert wird?

    Ich bin sicher, dass da geht und bestimmt auch schon irgendwo dokumentiert ist, aber ich kann es partout nicht finden.

    Wie kann ich ein field in der DCA anlegen, dass NICHT in die Datenbank gespeichert wird, bzw. wofür es auch eine Spalte in der Tabelle braucht?

    Warum brauche ich das? Ich möchte für dieses Feld gerne im save_callback selbst bestimmen, was passiert und den Wert bewusst in eine andere Datenbank-Tabelle schreiben.

  2. #2
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Das Nicht-Vorhandensein eines DB Tabellenfeldes erzeugt beim Speichern die Fehlermeldung:

    PHP-Code:
    Query errorUnknown column 'testfeld' in 'field list' (UPDATE tl_house SET testfeld='123' WHERE id='12'
    Geändert von matths (25.02.2011 um 14:03 Uhr)

  3. #3
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Also das ist wieder so ein Fall, wo man die Lösung selbst findet, kurze Zeit nachdem man hier eine Frage stellt. Tut mir leid...

    Die Lösung für alle Neugierigen:

    PHP-Code:
    'testfield' => array
    (
        
    'label'                        => &$GLOBALS['TL_LANG']['tl_house']['testfield'],
        
    'inputType'                    => 'select',
        
    'options'                    => array('toll''besser''wow''crazy'),
        
    'save_callback' => array
        (
            array(
    'tl_house''test_save_callback'), // <-- sollte mit return '' oder null zurückgeben
        
    ),
        
    'eval'                        => array
        (
            
    'doNotSaveEmpty'    => true// <-- DAS im Zusammenspiel mit einem save_callback war des Rätsels Lösung!
            
    'submitOnChange'    => true,
        ),
    ), 
    Die Lösung ist der eval-Ausdruck "doNotSaveEmpty" (muss true sein).
    Wenn man dann noch eine save_callback Methode einrichtet, die immer einen Leerstring oder Null zurückgibt, dann wird der Wert nicht in die DB gespeichert.

    Stattdessen kann man mit diesem Wert im save_callback machen was man will.

  4. #4
    Contao-Nutzer
    Registriert seit
    03.12.2013.
    Beiträge
    2

    Standard ID des Feldes mitspeichern

    Hallo,
    ich stand vor dem selben Problem wie du und dein Beitrag hat mir wirklich weitergeholfen. Vielen Dank dafür!
    Nun habe ich jedoch das Problem, dass ich zwar mit einem "save_callback" den Inhalt in einer anderen Tabelle speichern kann aber ich keine Ahnung habe wie ich auf die "ID" dieses Feldes (dass ich in "save_callback" update) oder zumindest auf den entsprechenden "Feldnamen" zugreife kann um die Daten an richtiger Stelle ändern zu können.

    Gibt es hier bereits eine Lösung?

    Vielen Dank im voraus!

  5. #5
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ich weiss nicht ganz, ob ich dich richtig verstanden habe, aber evtl. suchst du das:
    PHP-Code:
    public function mySaveCallback($varValue, \DataContainer $dc)
    {
         
    // Feldname
        
    $dc->field;

        
    // Aktuelle ID
        
    $dc->id;

        
    // Andere Werte meines Datensatzes
        
    $dc->activeRecord->irgendeinfeld;

    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Newsletter HTML-Inhalt wird nicht gespeichert
    Von Mario im Forum Newsletter
    Antworten: 1
    Letzter Beitrag: 09.08.2010, 15:48
  2. Textarea wird nicht gespeichert?
    Von freddydiekante im Forum Entwickler-Fragen
    Antworten: 1
    Letzter Beitrag: 25.05.2010, 14:57
  3. checkbox wird nicht gespeichert
    Von thepixture im Forum Sonstiges zu Contao
    Antworten: 2
    Letzter Beitrag: 09.01.2010, 14:19
  4. Webseitentitel wird nicht gespeichert
    Von johannes.enjoy im Forum Sonstiges zu Contao
    Antworten: 1
    Letzter Beitrag: 14.09.2009, 20:25

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •