Ergebnis 1 bis 2 von 2

Thema: Werte werden nicht gespeichert

      
  1. #1
    Forum Zuschauer
    Registriert seit
    31.10.2011
    Beiträge
    2

    Werte werden nicht gespeichert

    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
    PHP-Code:
    $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
    PHP-Code:
    $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
    PHP-Code:
    /**
     * @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
    PHP-Code:
    /**
     * @api
     */
    class Tx_Tsext_Domain_Repository_EventTextRepository extends Tx_Extbase_Persistence_Repository {


    Wenn ich dann versuche im Controller einen Datensatz abzuspeichern
    PHP-Code:
    $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?

  2. #2
    Forum Newbie
    Registriert seit
    20.01.2012
    Alter
    34
    Beiträge
    22
    Hast Du einen Testcase geschrieben mit dem Du das Model prüfen kannst? Wenn ein Datensatz in der DB landet aber alles auf NULL steht funktioniert entweder Dein Model nicht oder Du unterbrichst den Programmcode bevor das Object persisitiert wird.

    Ausserdem solltest Du die Repository injecten:

    PHP-Code:
        /**
         * @var Tx_Tsext_Domain_Repository_EventTextRepository
         */
        
    protected $eventTextRepository;

        
    /**
         * @param Tx_Tsext_Domain_Repository_EventTextRepository $eventTextRepository;
         * @return void
         */
        
    public function injectEventTextRepository(Tx_Tsext_Domain_Repository_EventTextRepository  $eventTextRepository;){    $this->eventTextRepository; = $eventTextRepository; } 
    In der Action heisst es dann:

    PHP-Code:
    $t t3lib_div::makeInstance("Tx_Tsext_Domain_Model_EventText"); 
    danach kannst Du zusätzlich noch prüfen ob du mit $t->setField(".."); und mit $t->getField() den Wert zurückbekommst.

    (Code ohne gewähr da nur hier reingeschrieben)

 

 

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Facebook Kommentare

Ähnliche Themen

  1. Flexform Werte für FE Plugin im TS Setup auslesen?
    Von Winddancer im Forum TYPO3 4.x Fragen und Probleme
    Antworten: 8
    Letzter Beitrag: 19.10.2011, 08:39
  2. Antworten: 2
    Letzter Beitrag: 12.08.2010, 12:33
  3. sk_etracker: Area Werte automatisiert
    Von demeter im Forum Alle anderen Extensions
    Antworten: 0
    Letzter Beitrag: 21.04.2010, 10:09
  4. Werte des Konstanten-Editor im TS
    Von pixel im Forum TYPO3 4.x Fragen und Probleme
    Antworten: 0
    Letzter Beitrag: 05.02.2010, 17:48
  5. Antworten: 5
    Letzter Beitrag: 03.11.2009, 09:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74