Ergebnis 1 bis 8 von 8

Thema: DCA, Select foreinKey und Wert

  1. #1
    Contao-Nutzer Avatar von medianetic
    Registriert seit
    08.11.2010.
    Ort
    Berlin
    Beiträge
    194

    Standard DCA, Select foreinKey und Wert

    Hallo,

    ich habe ein DCA definiert:

    Code:
    'abteilung'    => array(
                'inputType' => 'select',
                'exclude'   => true,
                'search'    => true,
                'filter'    => true,
                'sorting'   => true,
                'reference' => $GLOBALS['TL_LANG']['tl_jobs'],
                'foreignKey' => 'tl_jobs_abteilung.title', 
                'eval' => [
                    'chosen' => true, 
                    'tl_class' => 'w50'
                ],
                'sql'       => "int(10) unsignet NOT NULL default '0'",
                
            ),
    Die Tabelle tl_jobs_abteilung lässt sich über das Backend bearbeiten. Sie hat die Felder 'id','tstamp','title'.

    In dem Select im Backend werden auch die Titles angezeigt, also z.B. 'Forschung&Entwicklung'. Dieser Eintrag hat in der Tabelle tl_jobs_abteilung die ID 6.

    Wenn ich das Feld in tl_jobs speicher, fügt er mir aber in tl_jobs nicht den Title hinzu, sondern die ID (6).

    Mit tl_jobs arbeite ich dann später z.B. um eine Liste über ein Frontend-Modul auszugeben. Ich brauche hier jetzt aber wieder den Title und nicht die ID.

    Muss ich jetzt in dem Frontend-Modul eine DB Abfrage auf tl_jobs_abteilung machen, um aus der ID wieder den Title zu bekommen oder kann ich das anders machen?

  2. #2
    Contao-Fan Avatar von Fehrmann
    Registriert seit
    04.07.2009.
    Ort
    Wismar
    Beiträge
    580
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi,

    ich denke der beste Ansatz wären die Relationen im DCA, siehe: https://docs.contao.org/dev/referenc...lds/#relations Dann stehen dir per `getRelated` auch die Daten zur Verfügung.

    Alternativ kannst du natürlich auch ein Model verwenden
    Code:
    JobsAbteilungModel::findByPk($id);
    oder einen direkten Datenbankaufruf über die Datenbank-Klasse oder Doctrine.

    Viele Grüße
    René
    Software-Entwickler Backend/Frontend

  3. #3
    Contao-Nutzer Avatar von medianetic
    Registriert seit
    08.11.2010.
    Ort
    Berlin
    Beiträge
    194

    Standard

    Hi, danke erst mal ich schau mir das in Ruhe an.

    Das mit den Relations habe ich leider auch noch nicht ganz verstanden. Leider ist die Dokumentation etwas schmal und es gibt kein Beispiel. Das hatte hier auch schon jemand anderes angemerkt.

  4. #4
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ist Open Source, Du kannst zur Dokumentation beitragen.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  5. #5
    Contao-Fan Avatar von Fehrmann
    Registriert seit
    04.07.2009.
    Ort
    Wismar
    Beiträge
    580
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi,

    ansonsten mal im Ordner vendor/contao in den DCA-Dateien nach "relation" suchen. Dort sollten einige Beispiele zu finden sein.

    Viele Grüße
    René
    Software-Entwickler Backend/Frontend

  6. #6
    Contao-Nutzer Avatar von medianetic
    Registriert seit
    08.11.2010.
    Ort
    Berlin
    Beiträge
    194

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Ist Open Source, Du kannst zur Dokumentation beitragen.
    Nein kann ich nicht, solange bis ich es selbst verstanden habe.

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von medianetic Beitrag anzeigen
    In dem Select im Backend werden auch die Titles angezeigt, also z.B. 'Forschung&Entwicklung'. Dieser Eintrag hat in der Tabelle tl_jobs_abteilung die ID 6.

    Wenn ich das Feld in tl_jobs speicher, fügt er mir aber in tl_jobs nicht den Title hinzu, sondern die ID (6).

    Mit tl_jobs arbeite ich dann später z.B. um eine Liste über ein Frontend-Modul auszugeben. Ich brauche hier jetzt aber wieder den Title und nicht die ID.
    Das die 6 gespeichert wird, liegt in der Natur der Sache mit Relationalen Datenbanksysteme - mit der Normalisierung werden die Daten auf mehrere Tabellen verteilt und über einen "unique key" verknüpft; das ist üblicher Weise die ID des verknüpften Datensatzes. Nach Blick auf Deine Webseite hatte ich das als vorhandenes Wissen bei Dir eingeordnet... Über die gespeicherte ID und das Wissen, welche Tabelle gemeint ist, kommst Du dann wieder an alle Daten ran. Wie oben beschrieben kannst Du das "zu Fuß" mit einer eigenen DB-Abfrage machen oder eben über "DB-Frameworks" dir das liefern lassen.

    Können wir morgen (13.10.) auch gern bei einem Kaltgetränk zum Stammtisch besprechen - Link hab ich Dir schon gesendet

  8. #8
    Contao-Nutzer Avatar von medianetic
    Registriert seit
    08.11.2010.
    Ort
    Berlin
    Beiträge
    194

    Standard

    Danke das ist mir auch soweit klar. Ich würde es ja gerne über den 'Contao-Weg' machen und dazu fehlte mir noch das Verständnis.

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
  •