Symfony 删除'之后的孤立实体;清除孤立项';命令

Symfony 删除'之后的孤立实体;清除孤立项';命令,symfony,oneupuploaderbundle,Symfony,Oneupuploaderbundle,我正在孤儿院使用OneUploader捆绑包,我不确定如何处理清理实体(由侦听器创建),在文件被“清除孤儿”命令清理后-这通常是如何处理的 我希望看到为每个已清理(传递文件名和映射)但未找到任何内容(假设事件分派器可用于命令)的文件触发事件。OneUploaderBundle中的孤儿院的想法是,您不会用不属于任何实体的文件污染上载文件夹。这意味着,如果您在实体中使用上载的文件,则应将其移出孤儿院。如果将映射配置为使用孤儿院,则上载后所有上载的文件将存储在单独的文件夹中 : 一旦触发存储器上的up

我正在孤儿院使用OneUploader捆绑包,我不确定如何处理清理实体(由侦听器创建),在文件被“清除孤儿”命令清理后-这通常是如何处理的


我希望看到为每个已清理(传递文件名和映射)但未找到任何内容(假设事件分派器可用于命令)的文件触发事件。

OneUploaderBundle中的孤儿院的想法是,您不会用不属于任何实体的文件污染上载文件夹。这意味着,如果您在实体中使用上载的文件,则应将其移出孤儿院。如果将映射配置为使用孤儿院,则上载后所有上载的文件将存储在单独的文件夹中

:

一旦触发存储器上的
uploadFiles
方法,它们将被移动到正确的位置

这意味着您可以将逻辑移出事件侦听器(称为non-the-less),但可以将其移动到您希望最终上载文件并将其存储在孤儿院的控制器

// src/Acme/Controller/AcmeController.php

class AcmeController extends Controller
{
    public function storeAction()
    {

        // ...
        if ($form->isValid()) {
            $orphanageManager = $this->get('oneup_uploader.orphanage_manager')->get('gallery');

            // upload all files to the configured storage
            $files = $manager->uploadFiles();

            // your own logic to apply the files to the entity
            // ...
        }

    }
}

如果你真的有必要,一定要去孤儿院

感谢您的全面回复!我的问题是,我需要捕获原始文件名,这非常容易使用侦听器-在上传前捕获原始文件,在上传后捕获新文件名,并将这两个值存储在一个实体中(如果表单从未提交,则需要删除该实体)。我认为不可能从孤儿院经理那里得到原件。孤儿院非常适合我的特殊用例(它提供了将多个附件上传到一个独立表单的能力-可能永远不会被提交),关于用户从以前尝试将文件上传到表单时获取文件的问题,一个简单的解决方法是在“获取”请求时清除为会话上载的文件。。。对于FileSystemMorphoneStorage对象上的clear方法(用于清理提交给会话的所有文件),您觉得如何,然后我们可以在控制器中调用该方法?