2016-04-13 73 views
0

我想在我的擴展中使用現有的表。該表格僅用於只讀模式。事實上,我的擴展將只使用兩個字段:uid標題
擴展生成器將tx_extbase_type字段添加到此表中。我不需要這個字段,因爲我的擴展不會在這個表中存儲任何數據,並且它必須處理表中已經存在的數據。TYPO3:配置TCA使用現有的表

所以問題是:如何配置TCA使用此表?

以下是處理此表的ext_tables.php的塊。 的定義tx_extbase_type -field已被刪除。

$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']); 

我試圖刪除的行標有--->(含有tx_extbase_type -field)。在這種情況下,repository->findAll()總是給我記錄空字符串,而不是真正的標題。儘管查詢結果中記錄的數量和ID都是正確的!

我正在使用TYPO3 CMS 6.2.19

在此先感謝!

回答

2

你錯過,你必須通過的TypoScript到模型映射到一個現有的表(我建議你把它放在你的SETUP.TXT)部分:

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

乾杯, 奧利維爾

+0

謝謝!這是一個很好的提示!在模型映射的ext_typoscript_setup.txt 中有一行'recordType = Tx_MyVendor_TargetTable'。我刪除了這一行後就可以工作。 – firelex