小编Gar*_*vin的帖子

TYPO3 Extbase FAL - 如何从前端控制器更新文件元数据 (sys_file)

我有一个前端扩展,登录用户应添加/编辑 sys_file 记录。

我尝试像这样更新文件元数据(简化):

$uid = (int)$this->request->getArgument('file');
$resourceFactory = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance();
$file = $resourceFactory->getFileObject($uid);

$file->updateProperties(array(
    'title'             => $this->request->getArgument('title'),
    'keywords'          => $this->request->getArgument('keywords'),
    'description'       => $this->request->getArgument('description'),
    'copyright'         => $this->request->getArgument('copyright'),
    'modification_date' => time()
));

$this->fileRepository->update($file);
$this->addFlashMessage(LocalizationUtility::translate('messages.success.file'));
$this->persistenceManager->persistAll();
Run Code Online (Sandbox Code Playgroud)

persistenceManager 和 fileRepository 通过以下方式注入:

/**
 * fileRepository
 *
 * @var \TYPO3\CMS\Core\Resource\FileRepository
 * @inject
 */
protected $fileRepository = NULL;

/**
 * @var \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
 * @inject
 */
protected $persistenceManager;
Run Code Online (Sandbox Code Playgroud)

并且通常我没有收到任何错误,会显示 Flash 消息,流体表单甚至会显示表单内的新数据,但实际上并未保存。

有什么方法可以调试/解决这个问题?似乎 $fileRepository 实际上并没有执行“更新”语句,是否有某种我需要在前端规避的权限检查?

typo3 extbase fal

1
推荐指数
1
解决办法
1833
查看次数

标签 统计

extbase ×1

fal ×1

typo3 ×1