Hallo zusammen
Ich versuche gerade eine Extension mit Extbase umzusetzen. Jetzt habe ich das Problem, dass es keine Werte übernimmt wenn ich verusche über ein Repository einen Datensatz zu speichern.
[b]ext_tables.php[/b]
'title' => 'Event Text', 'transOrigPointerField' => 'i18n_parent', 'transOrigDiffSourceField' => 'i18n_diffsource', 'languageField' => 'sys_language_uid', 'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'Configuration/TCA/EventText.php' ) );
[b]Configuration/TCA/EventText.php[/b]
'ctrl' => $TCA['tx_tsext_domain_model_eventtext']['ctrl'], 'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.language', 'type' => 'select', 'foreign_table' => 'sys_language', 'foreign_table_where' => 'ORDER BY sys_language.title', 'LLL:EXT:lang/locallang_general.xml:LGL.default_value', 0, ), ), ), ), 'displayCond' => 'FIELD:sys_language_uid:>:0', 'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.l18n_parent', 'type' => 'select', '', 0, ), ), 'foreign_table' => 'tx_tsext_domain_model_eventtext', 'foreign_table_where' => 'AND tx_tsext_domain_model_eventtext.sys_language_uid IN (-1,0)', ), ), 'type'=>'passthrough', ), ), 'label' => 'LLL:EXT:tsext/Resources/Language/locallang.xml:eventText.event_name', 'type' => 'input', 'size' => '30', 'eval' => 'trim,required' ) ), 'label' => 'LLL:EXT:tsext/Resources/Language/locallang.xml:eventText.description', 'type' => 'text', 'eval' => 'trim' ) ), 'label' => 'LLL:EXT:tsext/Resources/Language/locallang.xml:eventText.infos', 'type' => 'text', 'eval' => 'trim' ) ) ) );
[b]Classes/Controller/Domain/Model/EventText.php[/b]
/** * @scope prototype * @entity * @api */ class Tx_Tsext_Domain_Model_EventText extends Tx_Extbase_DomainObject_AbstractEntity { /** * @var string */ private $description; /** * @var string */ private $eventName; /** * @var string */ private $i18nDiffsource; /** * @var int */ private $i18nParent = 0; /** * @var string */ private $infos; /** * @var int */ private $sysLanguageUid; /** * @return string */ public function getDescription() { return $this->description; } /** * @return string * @api */ public function getEventName() { return $this->eventName; } /** * @return string */ public function getI18nDiffsource() { return $this->i18nDiffsource; } /** * @return int */ public function getI18nParent() { return $this->i18nParent; } /** * @return string */ public function getInfos() { return $this->infos; } /** * @return int */ public function getLanguage() { return $this->sysLanguageUid; } /** * @param string $description */ public function setDescription($description) { $this->description = $description; } /** * @param string $name * @return void * @api */ public function setEventName($name) { $this->eventName = $name; } /** * @param string $i18nDiffsource */ public function setI18nDiffsource($i18nDiffsource) { $this->i18nDiffsource = $i18nDiffsource; } /** * @param int $i18nParent */ public function setI18nParent($i18nParent) { $this->i18nParent = $i18nParent; } /** * @param string $infos */ public function setInfos($infos) { $this->infos = $infos; } /** * @param int $lang */ public function setLanguage($lang) { $this->sysLanguageUid = $lang; } }
[b]Classes/Domain/Repository/EventTestRepository.php[/b]
/** * @api */ class Tx_Tsext_Domain_Repository_EventTextRepository extends Tx_Extbase_Persistence_Repository { }
Wenn ich dann versuche im Controller einen Datensatz abzuspeichern
$r = $this->objectManager->get('Tx_Tsext_Domain_Repository_EventTextRepository'); $t = $this->objectManager->create('Tx_Tsext_Domain_Model_EventText'); $t->setEventName('Test Event'); $t->setDescription('Hello world'); $t->setInfos('Some information'); $t->setLanguage(2); $r->add($t);
dann werden nur NULL-Werte in die Datenbank geschrieben. Ich habe meinen Code mit anderen Extensions verglichen und kann den Fehler einfach nicht finden. Kann mir jemand sagen, was ich hier falsch mache?