我有一个后端模块,可以从旧的配置文件中进行一些数据传输。数据库到TYPO3。 对于图像,我首先将它们重命名并将它们放在存储器中。 配置文件的记录也已复制并存储在数据库中。
然后,我获取配置文件存储中的每个文件的文件信息
$file = $storage->getFile($filetoget['filename']);
并且给了我我需要的东西。
然后我创建一个新的文件引用对象:
$profilemedia = $this->objectManager->get('TYPO3\Regprofiler\Domain\Model\FileReference');
我可以将所有属性添加到我需要的对象中。 我也设定了:
$profilemedia->setUidLocal($fileProps['uid']);
当我然后将图像添加到我的配置文件并更新我的配置文件存储库时,所有文件引用都按预期存储,除了uid_local,它保持为0 什么是烦人的,因为这样我就不会得到对sys_file的引用,因此:没有图像。
那么为什么我没有存储uid_local?
我的TCA图片
'image' => array(
'exclude' => 1,
'label' => 'image',
'l10n_mode' => 'mergeIfNotBlank',
'config' => array(
'type' => 'inline',
'foreign_sortby' => 'sorting',
'foreign_table' => 'tx_regprofiler_domain_model_profiler',
'foreign_field' => 'parent',
'size' => 5,
'minitems' => 0,
'maxitems' => 99,
'appearance' => array(
'collapseAll' => 1,
'expandSingle' => 1,
'levelLinksPosition' => 'bottom',
'useSortable' => 1,
'showPossibleLocalizationRecords' => 1,
'showRemovedLocalizationRecords' => 1,
'showAllLocalizationLink' => 1,
'showSynchronizationLink' => 1,
'enabledControls' => array(
'info' => FALSE,
)
)
)
),
答案 0 :(得分:0)
在创建模块以生成数据之前,请确保您可以使用TYPO3-Backend创建数据库记录。只需添加一条记录,然后检查是否可以在那里添加图像。如果出现,则模块中有错误,否则您的TCA会出错。
还建议使用
$TCA['tx_yourext_domain_model_yourmodel']['columns']['image']['config'] =
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('yourImageFieldHere',
array(
'maxitems' => 1,
'appearance' => array(
'createNewRelationLinkTitle' => 'LLL:EXT:nwb_page_tools/Resources/Private/Language/locallang_customlabels.xlf:add_image'
)
),
'jpg,png'
);
在您的TCA定义中。这是一个可以审核的核心方法here