后端模块中的FAL保存图像不会设置uid_local

时间:2014-04-29 09:34:00

标签: typo3 extbase

我有一个后端模块,可以从旧的配置文件中进行一些数据传输。数据库到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,
                    )
                )
            )
        ),

1 个答案:

答案 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