我使用extensionBuilder创建了一个自定义扩展,并有一个带有文件属性的模式,我可以使用后端的任何文件创建一个新记录,但我也需要在前端添加相同的功能,但找不到解决方案
我尝试简单地将文件标签放入表单中
<f:form.upload name="file" property="file" />
但出现此错误
Exception while property mapping at property path "file": The identity property "Screenshot from 2024-01-05 14-44-55.png" is no UID.
这是我控制器中的 createAction
public function createAction(\..\..\Domain\Model\Announcements $newAnnouncements) {
$this->announcementsRepository->add($newAnnouncements);
$this->redirect('list');
}
如果需要的话,这是我的tca
'file' => [
'exclude' => true,
'label' => 'LLL:EXT:../Resources/Private/Language/locallang_db.xlf:tx_.._domain_model_announcements.file',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'file',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:media.addFileReference'
],
'overrideChildTca' => [
'types' => [
'0' => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
--palette--;;imageoverlayPalette,
--palette--;;filePalette',
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
]
],
],
'foreign_match_fields' => [
'fieldname' => 'file',
'tablenames' => 'tx_**_domain_model_announcements',
'table_local' => 'sys_file',
],
'maxitems' => 1
]
),
],
也许 TYPO3 文档中的这篇文章会对您有所帮助。
确认您的控制器操作包括文件上传验证。您可能需要调整 createAction 方法才能正确处理文件上传。