Ergebnis 1 bis 6 von 6

Thema: Anfängerfrage : sql in dca für einzelne Tabellenspalte in bestehende Tabelle

  1. #1
    Contao-Nutzer
    Registriert seit
    15.04.2013.
    Beiträge
    36

    Standard Anfängerfrage : sql in dca für einzelne Tabellenspalte in bestehende Tabelle

    Hallo zusammen,

    ich bin dran, mich in den DCA zu "vertiefen". Dafür habe ich das Screencast-Tutorial von trill von der Contao Version 2.11 durchgearbeitet und auf Contao3 umgemünzt.

    Es funktioniert alles soweit, bis auf das Definieren einer neuen Spalte in einer bereits vorhandenen Tabelle von tl_module.
    In Tutorial 2.11 wird dies über die database.sql gemacht:


    Code:
    CREATE TABLE `tl_module` (
      `screencast_archives` int(10) unsigned NOT NULL default '0'
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Ich habe versucht, diesen Teil in die tl_module.php Datei unter dem Screencast-Ordner einzufügen:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module'] = array(

        
    'config' => array
        (
            
    'dataContainer'               => 'Table',
            
    'switchToEdit'                => true,
            
    'enableVersioning'            => true,
        ),
        
    'fields' => array
        (
            
    'screencast_archives'   => array (

                
    'label' => $GLOBALS['TL_LANG']['tl_module']['screencast_archives'],
                
    'inputType' => 'select',
                
    'foreignKey' => 'tl_screencast_archive.title',
                
    'eval' => array('mandatory' => true),
                
    'sql'   => "int(10) unsigned NOT NULL default '0'",
            ),
        ),

    ); 
    Leider finde ich im Entwicklerbuch/Referenz keine Möglichkeit, den SQL Befehl als "erweiterung" der bereits vorhandenen Tabelle zu behandeln. Lasse ich die Datenbank "aktualisieren" will er alle nicht aufgeführten Tabellen-Spalten mit einem DROP löschen. Was über die database.sql-Datei anstandlos funktionierte, klemmt in meinem DCA-Versuch.
    Gibt es eine Möglichkeit eine einzelne Spalte über den DCA nur hinzuzufügen, oder ist da die database.sql im Config-Ordner nötig, oder habe ich einen anderen totalen Knoten in der Überlegung.

    Vielleicht kann mir jemand da raushelfen. Im Forum habe ich nichts passendes gefunden.

    Besten Dank
    Martin
    Geändert von mad99 (02.05.2013 um 10:27 Uhr)

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Ja das ist so eine Sache, vorhandene Tabellen erweitern geht anders.
    In Deinem Beispiel definierst du ja das fields Array komplett neu, du musst es aber erweitern.
    Etwa so:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['fields']['screencast_archives'] = array
     (
                
    'label' => &$GLOBALS['TL_LANG']['tl_module']['screencast_archives'],
                
    'inputType' => 'select',
                
    'foreignKey' => 'tl_screencast_archive.title',
                
    'eval' => array('mandatory' => true),
                
    'sql'   => "int(10) unsigned NOT NULL default '0'",
    ); 
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Nutzer
    Registriert seit
    15.04.2013.
    Beiträge
    36

    Standard

    jetzt sehe ich den Gedankenfehler !

    Dachte, ich könnte das eine einfach mit dem anderen "kombinieren".

    Vielen Dank

  4. #4
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,

    ich hänge mich da einfach mal dran, wie kann ich keys über den SQL erstellen ;-) oder brauche ich dafür noch immer was anderes für C3.1?

    Danke Kirsten
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Eine nackte DCA die nur SQL Anteile hat sieht z.B. so aus wie hier:
    https://github.com/contao/core/blob/...ca/tl_cron.php

    Ab 3.1 gehen dann Multiple columns Keys
    Code:
    'sql' => array
    (
      'keys' => array
      (
        'id' => 'primary',
        'pid,name' => 'unique',
      )
    )
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke, das ist ein wirklich sehr gutes Beispiel.

    Gesendet von meinem Nexus 7 mit Tapatalk 2
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

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
  •