[Frage] Extbase Extension und Probleme mit TCA Select (comma list) [Gelöst] TYPO3-Version: 6.1.7

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    24. 06. 2014, 12:50

    Hallo,

    ich versuche gerade meine erste Extbase Extension (Totaler Anfänger) zu schreiben und habe folgendes Problem:

    Ich habe im BE ein Selectfeld (type), welches standardmäßig vom Extension Builder mit int(11) in der DB angelegt wird. Nun möchte ich aber eine Mehrfachauswahl speichern --> also das DB auf varchar(255) und die TCA wie folgt anpassen:

    TCA:

    1. 'type' => array(
    2. 'exclude' => 1,
    3. 'label' => 'LLL:EXT:projectdb/Resources/Private/Language/locallang_db.xlf:tx_projectdb_domain_model_projects.type',
    4. 'config' => array(
    5. 'type' => 'select',
    6. 'items' => array(
    7. array('-- not choosen --', '-- not choosen --'),
    8. array('Project 1', 'Project 1'),
    9. array('Project 2', 'Project 2'),
    10. array('Project 3', 'Project 3'),
    11. ),
    12. 'size' => 1,
    13. 'maxitems' => 1,
    14. 'eval' => ''
    15. ),
    16. ),

    Im BE klappt dies perfekt und die Werte stehen wie gewünscht in der DB...
    Nun das Problem:

    Im Fluid Rendering wird Anstelle der Werte nur ein Interger (0) übergeben.
    Details siehe Anhang...

    Den Controller habe ich ebenfalls schon auf "String" geändert:

    1. /**
    2. * type
    3. *
    4. * @var string
    5. */
    6. protected $type = '';

    Ebfalls im UNIT Test....

    Wo muss ich Extbase/Fluid mitteilen, dass nun Strings anstelle von Integer übergeben werden?

    LG Jürgen

    Anhänge (1)
    problem.jpg image/jpeg 0,00 B 211 heruntergeladen
  • webcheck webcheck
    T3PO
    1 x
    26 Beiträge
    1 Hilfreiche Beiträge
    11. 09. 2014, 23:09 - Lösung

    Hi ironpfu,

    ich weiß nicht, ob du das Problem mittlerweile schon selbst gelöst hast.
    Wenn nicht, hier noch ein Tipp von mir:

    Du musst in deiner Datenbanktabelle deines Models (tx_projectdb_domain_model_projects) die Spalte type vom Datentyp her noch ändern.
    Bei dir dürfte diese noch auf "int" stehen. Die kannst du einfach auf "varchar" ändern. Dann lassen sich deine Selectwerte auch abspeichern.

    Liebe Grüße

    Kevin


  • 1
  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    24. 06. 2014, 12:55

    Zu dieser Variable muss es auch einen Getter und Setter geben. Dort könnte in den Notations noch @return integer vermerkt sein. Such mal nach der Funktion getType() :)

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    24. 06. 2014, 13:13

    Danke für den schnelle Hinweis:
    Dies hatte ich ebenfalls schon geändert...

    1. /**
    2. * Returns the type
    3. *
    4. * @return string $type
    5. */
    6. public function getType() {
    7. return $this->type;
    8. }
    9.  
    10. /**
    11. * Sets the type
    12. *
    13. * @param string $type
    14. * @return void
    15. */
    16. public function setType($type) {
    17. $this->type = $type;
    18. }

    Ich habe nun alle Files durchsucht und nichts mehr gefunden, was auf Integer schließen lässt...
    Ps.: Cache ist geleert, temp files sind gelöscht.... Integer noch da :-(

  • webcheck webcheck
    T3PO
    1 x
    26 Beiträge
    1 Hilfreiche Beiträge
    11. 09. 2014, 23:09

    Hi ironpfu,

    ich weiß nicht, ob du das Problem mittlerweile schon selbst gelöst hast.
    Wenn nicht, hier noch ein Tipp von mir:

    Du musst in deiner Datenbanktabelle deines Models (tx_projectdb_domain_model_projects) die Spalte type vom Datentyp her noch ändern.
    Bei dir dürfte diese noch auf "int" stehen. Die kannst du einfach auf "varchar" ändern. Dann lassen sich deine Selectwerte auch abspeichern.

    Liebe Grüße

    Kevin

  • 1