Zum Inhalt springen

Extbase Extension und Probleme mit TCA Select (comma list)

Erstellt am 24. Juni 2014 · 3 Antworten · letzte Antwort am 11. September 2014

Tags: Fluid, TCA, TYPO3 6.x, Frage

ironpfu ·

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:

'type' => array(
			'exclude' => 1,
			'label' => 'LLL:EXT:projectdb/Resources/Private/Language/locallang_db.xlf:tx_projectdb_domain_model_projects.type',
			'config' => array(
				'type' => 'select',
				'items' => array(
					array('-- not choosen --', '-- not choosen --'),
					array('Project 1', 'Project 1'),
					array('Project 2', 'Project 2'),
					array('Project 3', 'Project 3'),
				),
				'size' => 1,
				'maxitems' => 1,
				'eval' => ''
			),
		),

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:

/**
* type
* 
* @var string
*/
protected $type = '';

Ebfalls im UNIT Test....

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

LG Jürgen

problem.jpg

Schweriner ·

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 ·

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

/**
	 * Returns the type
	 * 
	 * @return string $type
	 */
	public function getType() {
		return $this->type;
	}

	/**
	 * Sets the type
	 * 
	 * @param string $type
	 * @return void
	 */
	public function setType($type) {
		$this->type = $type;
	}

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 · · Beste Antwort

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