Ergebnis 1 bis 6 von 6

Thema: Eigener options_callback im DCA

  1. #1
    Contao-Nutzer
    Registriert seit
    28.08.2017.
    Beiträge
    19

    Standard Eigener options_callback im DCA

    Hallo,

    ich versuche im DCA eines Rock Solid Custom Elements (sollte sich in diesem Fall wie ein Standard DCA verhalten) ein Select-Menü (Dropdownliste) per options_callback auszugeben die eine Tabelle in der gleichen Contao-Datenbank ausliest.

    Conta-Version: 4.4.21


    Leider bekomme ich es nicht hin.
    http://help.rocksolidthemes.com/disc...k-nicht-mglich

    Dieser Link hilft mir nur bedingt weiter.
    Mit
    Code:
      'feld2' => array(
        'label' => array('Feld 2', ''),
        'inputType' => 'select',
        'options_callback' => array('tl_content', 'getForms'),
                
    ),
    bekomme ich eine solche Select-Liste, aber eben leider nur die Formulare aus dem Formgenerator.

    Wie würde ich es anstellen wenn ich anstelle von tl_content "meine_tabelle_x" auslesen möchte und das feld "mein_feld_y" anzeigen möchte?
    Geändert von dwkn (14.08.2018 um 15:37 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    PHP-Code:
     'options_callback' => function() {
            return array(
    'wert1' => 'Bezeichnung 1''wert2' => 'Bezeichnung 2');
        }, 
    In der Funktion kannst du eine Abfrage auf deine Tabelle machen und das Array zurückgeben.
    Grüße
    Alex

  3. #3
    Contao-Nutzer
    Registriert seit
    28.08.2017.
    Beiträge
    19

    Standard

    Zitat Zitat von 07alex07 Beitrag anzeigen
    PHP-Code:
     'options_callback' => function() {
            return array(
    'wert1' => 'Bezeichnung 1''wert2' => 'Bezeichnung 2');
        }, 
    In der Funktion kannst du eine Abfrage auf deine Tabelle machen und das Array zurückgeben.
    Wie kann ich das machen Alex?

    Code:
     'options_callback' => function() {
             $array=array();
             $this->import('Database');
             $result = $this->Database->prepare("SELECT group_name FROM dw_keywords_categories ")->query(); 
            while($result->next()){ 
                $array[]=$result->group_name;
            }
            return $array;
        },
    Mit meinem Code bekomme ich einen "Internal Server Error"
    "Using $this when not in object context" :-(

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Code:
    Database::getInstance()
    anstatt
    Code:
    $this->Database
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Nutzer
    Registriert seit
    28.08.2017.
    Beiträge
    19

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Code:
    Database::getInstance()
    anstatt
    Code:
    $this->Database

    Super fiedsch - funktioniert! Zuerst gab es dennoch einen Fehler aber wenn ich
    Code:
    $this->import('Database');
    noch auskommentiere/lösche geht es.

    Vielen Dank an Dich.

  6. #6
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von dwkn Beitrag anzeigen
    Zuerst gab es dennoch einen Fehler aber wenn ich
    Code:
    $this->import('Database');
    noch auskommentiere/lösche geht es.
    Das ist ja letztlich auch der gleiche Fehler: Du bis in einer Funktion und nicht in einer Klasse (in einem Objekt), wo sich das $this auf die Klasse (das Objekt) bezieht.
    Daher Deine obige Fehlermeldung "Using $this when not in object context".
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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