2016-04-13 2 views
0

Я хочу использовать существующую таблицу в своем расширении. Эта таблица будет использоваться только в режиме только для чтения. Фактически мое расширение будет использовать только два поля: uid и title.
Добавочный расширитель добавлен 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 -поле). В этом случае repository->findAll() всегда дает мне записи с пустыми строками вместо реальных названий. Хотя количество записей и их идентификаторов в результате запроса верны!

Я использую 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

Смежные вопросы