1

关于 Symfony,我不想错过一件事,因为我认为我无法理解得这么好。你可以帮帮我吗??我将以捆绑包VichUploaderBundle为例,但在其他情况下也会发生同样的情况。

文档说明了如何创建自定义目录,但就我而言,我想与idfrom 相关news。示例目录:upload/news/:news_id/image.jpg

我对此的理解是,我必须创建两种不同的服务,一种用于upload_destination,另一种用于directory_namer,我是对的吗?

配置.yml

vich_uploader: 
    # ... 
    mappings: 
    product_image: 
    upload_destination: news_image 
    directory_namer:    my.directory_namer.news  

但我怎么能做到呢?如果我遵循 Symfony 的文档,我应该以这种方式创建 Synfony 服务

我应该遵循哪些步骤?我认为在我的课程中创建一个课程 Newsbundle并将其分配为“服务”。没关系?

我如何在class我被创建为service的中进行捕获news_id?并罚款image_name保存在database?然后保存custom directory还?

这对我来说是一件非常重要的事情,因为我认为知道这有助于我理解其他捆绑包以及如何应用它们。

总之:

如何使用新闻 id 保存到自定义目录以及如何使用新闻 id 重命名图像?

我希望你能帮助我。

谢谢,卡洛斯。

4

1 回答 1

1

与外部捆绑包交互的方式有多种:

  • 使用 bundle 触发的事件
  • 配置覆盖
  • 声明将由捆绑操作的服务(如您的示例中)
  • 覆盖捆绑包 - 一些捆绑包将一些类路径放入其配置中,您可以通过覆盖它来使用自己的类。

我从未使用过VichUploaderBundle,但在快速查看他的文档后,您的名为“my.directory_namer.news”的服务似乎应该实现DirectoryNamerInterfacehttps://github.com/dustin10/VichUploaderBundle/blob/master/Naming/目录名称接口.php )

然后,您可以定义接口强加的“directoryName”方法,并将您的逻辑放入其中以从对象(新闻)构建目录名称。

希望这会帮助你。

最好的问候,J

于 2014-08-16T11:25:41.237 回答