【问题标题】:How to handle file-upload using Sylius' SyliusResourceBundle如何使用 Sylius 的 SyliusResourceBundle 处理文件上传
【发布时间】:2020-06-24 20:21:07
【问题描述】:

我想知道如何将file-upload 添加到我的资源中。我使用的是SyliusResourceBundle,所以所有控制器都是为我生成的。

路由:

app_product:
    resource: |
        alias: app.product
        except: ['show']
        section: admin
        grid: app_admin_product
        templates: Admin/Crud
        form: App\Form\Type\ProductType
    type: sylius.resource

ProductType 是我的自定义表单,它有一个FileType。我可以改变这一点,但问题是如何处理上传。当我查看 Sylius 的控制器时,我看到两个事件被触发:

Sylius\Bundle\ResourceBundle\Controller\ResourceController:~191

$event = $this->eventDispatcher->dispatchPreEvent(ResourceActions::CREATE, $configuration, $newResource);

我已尝试创建自定义 EventListener 扩展 EventSubscriberInterface 并尝试注册专门侦听 name: kernel.event_listener, event: sylius.product.pre_create 的服务,但由于某种原因不需要。即使是这样!

是否允许我修改 $newResource 以便将所选图像保存到数据库中?

【问题讨论】:

  • 发布您的整个服务定义,您的想法是正确的。

标签: symfony file-upload sylius sylius-resource


【解决方案1】:

Sylius 有能力让任何资源实体都有图像。 但是,您可以使用此功能上传任何文件,但它无法渲染除图像之外的任何其他内容,无需额外代码来处理其他格式。 这是一个旨在使此功能通用并涵盖任何格式的 PR:https://github.com/Sylius/Sylius/pull/9224 由于多个 BC Breaks,它没有被合并,但您可以将代码提取到您的应用程序中。

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 2019-08-23
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    相关资源
    最近更新 更多