Ergebnis 1 bis 16 von 16

Thema: Neue Felder in DCA einfügen

  1. #1
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard Neue Felder in DCA einfügen

    Hallo Beisammen,

    wahrscheinlich stelle ich mich zu blöde an, aber ich möchte neue Felder in meine Datenbank einfügen und auch sichtbar haben. Hier in diesem Beispiel in der Mitgliederverwaltung (tl_member), die ich um ein paar Felder (die editierbar sein sollen) erweitern möchte.

    Hier mein Code, der nicht ganz finktioniert und Fehler bringt, beim Ausführen des Composers. Das ganze ist eingefügt in der Datei tl_member.php

    PHP-Code:
    //
    // neu Felder in die Datenbank einfügen ANGFANG
    //

    use Contao\CoreBundle\DataContainer\PaletteManipulator;

    $GLOBALS['TL_DCA']['tl_member']['fields']['bemerkungen'] = [
        
    'label' => ['Bemerkungen''Eine Bemerkung eingeben, falls gewünscht.'],
        
    'inputType' => 'text',
        
    'eval' => ['tl_class' => 'w50''maxlength' => 255],
        
    'sql' => ['type' => 'string''length' => 255'default' => ''],
    ];

    PaletteManipulator::create()
        ->
    addField('bemerkungen''title_legend'PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('default''tl_member')

    ;


    //
    // neue Felder in die DAtenbank einfüegen ENDE
    // 

    Probleme gibt es mit der Anweisung 'applyToPalette' - da behauptet das System das es diese PAlette nicht gibt. Ich verstehe auch das Kosntrukt mit diesen Paletten nicht.

    Danke für Eure Hilfe

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Nutze den Debug-Modus und poste den Stack Trace der Fehlermeldung.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nutze den Debug-Modus und poste den Stack Trace der Fehlermeldung.
    Siehe unten: der Fehler lieg twohl darin, daß die Palette 'default' nicht zugeordnet werden kann. Ich habe das Beispiel aus verschiedenen Quellen, verschiedene Versionen probiert und denn och gescheitert, obwohl es einfach sein soll.

    Danke

    =========== start debug ====

    Code:
    " ["exception" => RuntimeException { …},"message" => """  An error occurred while executing the "/Applications/MAMP/bin/php/php8.1.13/bin/php -dmemory_limit=-1 /Users/hendele/srv/www/sam-ev2020_ct4/vendor/contao/manager-bundle/bin/contao-console cache:warmup --env=prod --no-ansi" command: 14:52:40 CRITICAL  [console] Error thrown while running command "cache:warmup --env=prod --no-ansi". Message: "Palette "default" not found in table "tl_member"" ["exception" => Contao\CoreBundle\DataContainer\PaletteNotFoundException { …},"command" => "cache:warmup --env=prod --no-ansi","message" => "Palette "default" not found in table "tl_member""]\n  \n  In PaletteManipulator.php line 104:\n                                                      \n    Palette "default" not found in table "tl_member"  \n                                                      \n  \n  cache:warmup [--no-optional-warmers]\n  \n  """]
    In ContaoSetupCommand.php line 146:
                                                                                   
      An error occurred while executing the "/Applications/MAMP/bin/php/php8.1.13  
      /bin/php -dmemory_limit=-1 /Users/hendele/srv/www/sam-ev2020_ct4/vendor/con  
      tao/manager-bundle/bin/contao-console cache:warmup --env=prod --no-ansi" co  
      mmand: 14:52:40 CRITICAL  [console] Error thrown while running command "cac  
      he:warmup --env=prod --no-ansi". Message: "Palette "default" not found in t  
      able "tl_member"" ["exception" => Contao\CoreBundle\DataContainer\PaletteNo  
      tFoundException { …},"command" => "cache:warmup --env=prod --no-ansi","mess  
      age" => "Palette "default" not found in table "tl_member""]                  
                                                                                   
      In PaletteManipulator.php line 104:                                          
                                                                                   
        Palette "default" not found in table "tl_member"                           
                                                                                   
                                                                                   
      cache:warmup [--no-optional-warmers][                                         
                                                                                   
    contao:setup
    Script @php vendor/bin/contao-setup handling the post-install-cmd event returned with error code 1
    # Process terminated with exit code 1
    # Result: General error

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Führe das Kommando folgendermaßen aus:
    Code:
    vendor/bin/contao-setup -v
    und poste die Konsolenausgabe davon.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Führe das Kommando folgendermaßen aus:
    Code:
    vendor/bin/contao-setup -v
    und poste die Konsolenausgabe davon.
    Das ist das Ergebnis:

    Code:
    (base) hendele@MacBook-Pro-M1 bin % ./contao-setup -v
    env: php: No such file or directory
    Geändert von Spooky (07.02.2024 um 14:08 Uhr)

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Du hast den falschen Befehl eingegeben laut deiner Konsolenausgabe. Du musst
    Code:
    vendor/bin/contao-setup -v
    eingeben (ggf. den Pfad zum richtigen PHP CLI voranstellen).
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du hast den falschen Befehl eingegeben laut deiner Konsolenausgabe. Du musst
    Code:
    vendor/bin/contao-setup -v
    eingeben (ggf. den Pfad zum richtigen PHP CLI voranstellen).
    Sorry ja, aber wo nun? Auf der Systemebene meines Notebooks?
    Ich bin echt am verzweifeln, denn ich habe Original-Beispiele genommen, die nun nicht funktionieren. Alles andere an meiner Installation läuft ja prima, bis auf den Code-Schnipsel den ich die tL-member.php eingegeben habe.

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

    Standard

    Das gibst Du im Installationsverzeichnis Deiner Contao Installation ein (in dem auch der vendor/ Unterordner liegt). Dann passt der relative Pfad vendor/bin/contao-setup.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Zitat Zitat von hendele Beitrag anzeigen
    Sorry ja, aber wo nun? Auf der Systemebene meines Notebooks?
    Im Installationsverzeichnis deiner Contao Installation.


    Zitat Zitat von hendele Beitrag anzeigen
    bis auf den Code-Schnipsel den ich die tL-member.php eingegeben habe.
    Nur um Sicher zu gehen: du hast eine eigene contao/dca/tl_member.php Datei angelegt, korrekt?
    » sponsor me via GitHub or PayPal or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Im Installationsverzeichnis deiner Contao Installation.


    Nur um Sicher zu gehen: du hast eine eigene contao/dca/tl_member.php Datei angelegt, korrekt?
    Also, ich habe keine eigene Datei angelegt. Die war schon mit ordentlichem Inhalt vorhanden und ich habe meine Erweiterung einfach am Anfang der Datei eingegeben. Oder ist das falsch?

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Ja, das ist komplett falsch . Erstens darfst du im vendor/ Ordner nichts ändern und Zweitens wäre, selbst wenn du das machst, es auch ganz falsch das am Anfang der Datei einzufügen.

    Du musst wie schon erwähnt eine eigene contao/dca/tl_member.php Datei anlegen. Siehe dazu auch https://docs.contao.org/dev/getting-started/dca/

    Any DCA adjustments go into the contao/dca/ folder. There, you have to create individual files for each Data Container. For example, if you want to adjust the DCA for news entries, whose Data Container is called tl_news, then you need to create a file called tl_news.php there.
    » sponsor me via GitHub or PayPal or Revolut

  12. #12
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ja, das ist komplett falsch . Erstens darfst du im vendor/ Ordner nichts ändern und Zweitens wäre, selbst wenn du das machst, es auch ganz falsch das am Anfang der Datei einzufügen.

    Du musst wie schon erwähnt eine eigene contao/dca/tl_member.php Datei anlegen. Siehe dazu auch https://docs.contao.org/dev/getting-started/dca/
    OK, da habe ich verstanden. Wo lege ich nun diese DAtei an? Wohl schon in einem anderen Verzeichnis, aber welchem nun, bzw. an welchem Ort?

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Den Pfad habe ich ja nun schon 2 mal gepostet - hier noch einmal: contao/dca/tl_member.php
    » sponsor me via GitHub or PayPal or Revolut

  14. #14
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Den Pfad habe ich ja nun schon 2 mal gepostet - hier noch einmal: contao/dca/tl_member.php
    OK, das habe ich jetzt hinbekommen. Der Composer ist ohne Fehler durchgelaufen, das Feld sieht man jetzt auf der Maske und kann etwas eingaben. Wird aber nicht gespeichert. Muß ich das Datenbankfeld manuell in der Tabelle anlegen?

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Nein, nach so einer Anpassung musst du auch die Datenbank aktualisieren (über den Contao Manager, das Contao Install Tool wenn noch vorhanden oder über die Konsole mit contao:migrate).
    » sponsor me via GitHub or PayPal or Revolut

  16. #16
    Contao-Nutzer
    Registriert seit
    02.03.2010.
    Beiträge
    93

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nein, nach so einer Anpassung musst du auch die Datenbank aktualisieren (über den Contao Manager, das Contao Install Tool wenn noch vorhanden oder über die Konsole mit contao:migrate).
    Danke, paßt. Habe ich gemacht.

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
  •