2016-04-13 16 views
0

Ich möchte eine vorhandene Tabelle in meiner Erweiterung verwenden. Diese Tabelle wird nur im schreibgeschützten Modus verwendet. Tatsächlich verwendet meine Erweiterung nur zwei Felder: uid und Titel.
Erweiterungsersteller hinzugefügt tx_extbase_type Feld zu dieser Tabelle. Ich brauche dieses Feld nicht, weil meine Erweiterung keine Daten in dieser Tabelle speichern würde und sie mit Daten umgehen muss, die bereits in der Tabelle vorhanden sind.TYPO3: TCA für die Verwendung der vorhandenen Tabelle konfigurieren

Die Frage ist also: Wie kann ich TCA für die Verwendung dieser Tabelle konfigurieren?

Hier ist der Block ext_tables.php Umgang mit dieser Tabelle. Definition von tx_extbase_type -Feld ist bereits entfernt.

$tmp_myext_columns = array(

    'title' => array(
     'exclude' => 0, 
     'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_targettable.title', 
     'config' => array(
      'type' => 'input', 
      'size' => 30, 
      'eval' => 'trim,required' 
     ), 
    ), 
); 

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_someext_domain_model_targettable',$tmp_myext_columns); 

$GLOBALS['TCA']['tx_someext_domain_model_targettable']['types']['Tx_MyExt_TargetTable']['showitem'] = $TCA['tx_someext_domain_model_targettable']['types']['1']['showitem']; 
$GLOBALS['TCA']['tx_someext_domain_model_targettable']['types']['Tx_MyExt_TargetTable']['showitem'] .= ',--div--;LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_targettable,'; 
$GLOBALS['TCA']['tx_someext_domain_model_targettable']['types']['Tx_MyExt_TargetTable']['showitem'] .= 'title'; 

--> $GLOBALS['TCA']['tx_someext_domain_model_targettable']['columns'][$TCA['tx_someext_domain_model_targettable']['ctrl']['type']]['config']['items'][] = array('LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_someext_domain_model_targettable.tx_extbase_type.Tx_MyExt_TargetTable','Tx_MyExt_TargetTable'); 

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tx_someext_domain_model_targettable', $GLOBALS['TCA']['tx_someext_domain_model_targettable']['ctrl']['type'],'','after:' . $TCA['tx_someext_domain_model_targettable']['ctrl']['label']); 

Ich habe versucht, die Linie markiert mit ---> (mit tx_extbase_type -field) zu löschen. In diesem Fall gibt repository->findAll() immer Datensätze mit leeren Strings anstelle von echten Titeln. Obwohl die Anzahl der Datensätze und ihre IDs im Abfrageergebnis korrekt sind!

Ich bin mit TYPO3 CMS 6.2.19

Vielen Dank im Voraus!

Antwort

2

Sie vermissen den Teil, wo Sie Ihr Modell in eine vorhandene Tabelle durch TypoScript zur Karte (Ich schlage vor, Sie es in Ihrem setup.txt) setzen:

config.tx_extbase.persistence.classes.[my_model_class_path] { 
mapping { 
    tableName = [existing_extbase_table] 
} 

Cheers, Olivier

+0

Dank! Das war ein guter Tipp! In meiner ext_typoscript_setup.txt im Model Mapping gab es eine Zeile 'recordType = Tx_MyVendor_TargetTable'. Nachdem ich diese Zeile gelöscht habe, funktioniert es. – firelex

Verwandte Themen