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.
ext_tables.php
$TCA['tx_tsext_domain_model_eventtext'] = array (
'ctrl' => array (
'title' => 'Event Text',
'transOrigPointerField' => 'i18n_parent',
'transOrigDiffSourceField' => 'i18n_diffsource',
'languageField' => 'sys_language_uid',
'enablecolumns' => array(),
'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'Configuration/TCA/EventText.php'
)
);
Configuration/TCA/EventText.php
$TCA['tx_tsext_domain_model_eventtext'] = array(
'ctrl' => $TCA['tx_tsext_domain_model_eventtext']['ctrl'],
'columns' => array(
'sys_language_uid' => array(
'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.language',
'config' => array(
'type' => 'select',
'foreign_table' => 'sys_language',
'foreign_table_where' => 'ORDER BY sys_language.title',
'items' => array(
array(
'LLL:EXT:lang/locallang_general.xml:LGL.default_value',
0,
),
),
),
),
'i18n_parent' => array(
'displayCond' => 'FIELD:sys_language_uid:>:0',
'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.l18n_parent',
'config' => array(
'type' => 'select',
'items' => array(
array(
'',
0,
),
),
'foreign_table' => 'tx_tsext_domain_model_eventtext',
'foreign_table_where' => 'AND tx_tsext_domain_model_eventtext.sys_language_uid IN (-1,0)',
),
),
'i18n_diffsource' => array(
'config'=>array(
'type'=>'passthrough',
),
),
'event_name' => array(
'label' => 'LLL:EXT:tsext/Resources/Language/locallang.xml:eventText.event_name',
'config' => array(
'type' => 'input',
'size' => '30',
'eval' => 'trim,required'
)
),
'description' => array(
'label' => 'LLL:EXT:tsext/Resources/Language/locallang.xml:eventText.description',
'config' => array(
'type' => 'text',
'eval' => 'trim'
)
),
'infos' => array(
'label' => 'LLL:EXT:tsext/Resources/Language/locallang.xml:eventText.infos',
'config' => array(
'type' => 'text',
'eval' => 'trim'
)
)
)
);
Classes/Controller/Domain/Model/EventText.php
/**
* @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;
}
}
Classes/Domain/Repository/EventTestRepository.php
/**
* @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?