我想为创建表单构建一个预览页面。我将记录的“已删除”属性设置为“1”,previewAction因为在 BE 中,列表模块用于批准插入的记录 - 因此,如果记录从未最终保存,则无论如何都将其删除。
问题:我可以创建记录 ( deleted=1) - 我可以跳回表单(没有历史记录,因为我必须保留创建的对象)。但是如果我再次提交属性映射告诉我
未找到身份为“3”的 MyModel 类型对象。
那当然是因为它被删除了。存储库中要忽略已删除的设置在此处不执行操作。
是的,我可以通过手动填充所有内容来绕过 Extbase 魔法,但这不是我想要的。
这是了解我正在尝试的操作的操作
 /**
 * action preview
 *
 * @param MyModel
 * @return void
 */
public function previewAction(MyModel $newModel)
{
    //check if model was already saved
    $uid = $this->request->hasArgument('uid') ? this->request->getArgument('uid') : 0;
    if($uid){
        $newModel = $this->myRepository->findDeletedByUid($uid);
        $this->myRepository->update($newModel);
    }
    else{
        $newModel->setDeleted(true);
        $this->myRepository->add($newModel);
    }
    $this->view->assign('ad', $newModel);
    $this->persistenceManager->persistAll();
    $uid = $this->persistenceManager->getIdentifierByObject($newModel);
    $this->view->assign('uid', $uid);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在我的扩展中,我阅读了文件夹和图像.但是在结果中总是缺少来自sys_file_metadata的元数据,我什么也没发现如何加载它.
数据库条目在那里,所以文件被索引,一切似乎都没问题.BE工作正常.
这里有一些代码:
控制器操作:
$storageId = 1;
$storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
$storage = $storageRepository->findByUid($storageId);
$singleFile = $storage->getFile('/user_upload/my_file.pdf');
$singleFile = true;
$this->view->assign('singleFile', $singleFile);
Run Code Online (Sandbox Code Playgroud)
如果我做af:调试它给我看这个:
Extbase Variable Dump
TYPO3\CMS\Core\Resource\Fileprototypeobject
   metaDataLoaded => FALSE
   metaDataProperties => array(empty)
   indexingInProgress => FALSE
   updatedProperties => array(empty)
   indexerService => NULL
   properties => array(15 items)
   storage => TYPO3\CMS\Core\Resource\ResourceStorageprototypeobject
   identifier => '/user_upload/my_file.pdf' (24 chars)
   name => 'my_file.pdf' (11 chars)
   deleted => FALSE
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有一个字段metaDataProperties和metaDataLoaded,所以它没有被加载.
有人知道如何加载它吗?
我可以像这样在TCA中覆盖图像字段的cropVaraints:
'columnsOverrides' => [
    'image' => [
        'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_be.xlf:general.field.image',
        'config' => [
            'overrideChildTca' => [
                'columns' => [
                    'crop' => [
                        'config' => [
                            'cropVariants' => [
                                'default' => [
                                    'title' => 'LLL:EXT:myext/Resources/Private/Language/locallang_be.xlf:wizard.banner.title',
                                    'allowedAspectRatios' => [
                                        '2:1' => [
                                            'title' => 'LLL:EXT:myext/Resources/Private/Language/locallang_be.xlf:field.banner.image-crop.ratio',
                                            'value' => 2 / 1
                                        ],
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],
],
Run Code Online (Sandbox Code Playgroud)
我试图使这种方式灵活化-但没有成功。所以我需要的是这样的东西(但工作:-))
<foreign_selector_fieldTcaOverride type="array">
    <config>
        <appearance>
            <elementBrowserType>file</elementBrowserType>
            <elementBrowserAllowed>jpg,png</elementBrowserAllowed>
        </appearance>
        <overrideChildTca>
            <columns>
                <crop>
                    <config>
                        <cropVariants>
                            <default>
                                <title>Blubber</title>
                                <allowedAspectRatios>
                                    <test>
                                        <title>2:1</title>
                                        <value>2 / 1</value> …Run Code Online (Sandbox Code Playgroud)