ログインしたユーザがsys_fileレコードを追加/編集するフロントエンド拡張機能があります。TYPO3 Extbase FAL - フロントエンドコントローラからファイルメタデータ(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();
のPersistenceManagerとfileRepositoryを介して注入され
:
/**
* fileRepository
*
* @var \TYPO3\CMS\Core\Resource\FileRepository
* @inject
*/
protected $fileRepository = NULL;
/**
* @var \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
* @inject
*/
protected $persistenceManager;
と、一般的に私はエラーを取得していない、フラッシュメッセージが表示され、流体フォームはフォーム内に新しいデータを表示しますが、実際には保存されません。
これをデバッグする方法はありますか? $ fileRepositoryは実際には "更新"ステートメントを実行していないようですが、フロントエンドで回避する必要のある許可チェックがありますか?
値、あなたに感謝この
のようなメタデータを取り込むことができます入力。私は実際にそのようにして、それを一時的なハックとしてしか使用しないことを望んでいました。私はFileIndexRepositoryの言及を見ましたが、このメタデータを更新するためにFile Resourceオブジェクトを取ることはできません。 – Garvin