これは簡単ですが、私はそれを行うにはあまりにも愚かであるようです。私は、 "cv"と呼ばれるフィールドをfe_usersに追加して、pdfファイルをアップロードしました。私FrontendUserモデルでは、次のようになります。TYPO3 8 with extbase:remove FileReference
/**
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
* @cascade remove
*/
protected $cv;
ファイルをアップロードすると、魔法のように動作しますが、私は部品でhttps://github.com/helhum/upload_exampleからスクリプトを使用していました。
唯一の問題は、そのようなファイルを削除するか、むしろsys_fileとユーザーとの間の接続を削除することです。フォームを送信し、チェックボックスをチェックした後、私はこれを行うことを試みた:私は、バックエンドを見ている場合、ページのリロードの後
$user->setCv(null);
$user->setEdited(new \DateTime());
$this->frontendUserRepository->update($user);
$persistenceManager->persistAll();
を、CVファイルがまだ「編集済み」ユーザーに添付(ただしれました現在の日時に正しく設定されている)。私はこれを理解していません。どうすればFileReferenceの値をnullに設定できますか?
:あなたは
new \TYPO3\CMS\Extbase\Persistence\ObjectStorage()
にcv
を設定することができ、すべてのFileReferences
クリアするには、Nの関係を、プロパティでフォームを作成することは可能でしょうか?もしそうなら、どう? – Chiこれらはm:nの関係で格納されています。これは 'sys_file_reference'テーブルの' TCA'で定義されているので、1:1を使用するように変更する必要はありません。 'ObjectStorage'にファイルを追加したい場合、' ObjectStorage-> attach($ file) 'を使うことができます。 m:n関係が不要な場合は、代わりに 'TYPO3 \ CMS \ Core \ Resource \ File'を使用することができます。 –
CVがユーザーごとに1つのファイルしかない場合、彼はなぜObejctStorageを使用しますか? – j4k3