问题标签 [sonata-media-bundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11648 浏览

php - 在 Sonata Admin Bundle 中处理多个文件上传

所以,经过大量研究并没有得到任何结果(也许我是一个糟糕的搜索者)我来自这个主题:SonataAdmin Bundle File Upload Error and SonataMediaBundle - how to upload images?我找不到我的问题的解决方案。我有一个实体Company,每家公司都可以有多个文件:PDF、DOC、XLS 和其他一些 mime/类型。我认为使用VichUploaderBundle但文档再次仅涵盖一对一关系的示例,所以我的问题是,任何人都可以给我一些示例或方法来完成此操作吗?我的意思是上传文件并将它们附加到公司?

EDIT1 工作和测试

正如我之前所说,我正在尝试将 SonataMediaBundle 集成到我拥有的另一个管理模块中,但我无法让它工作。到现在为止我做了什么?

当然安装和配置所有包:SonataAdminBundle 和 SonataMediaBundle 都工作正常

修改\Application\Sonata\MediaBundle\Entity\Media.php类以通过添加 ManyToMany 关系来添加所需的功能

在 PL\OrderBundle\Entity\Order.php 中添加需要字段,如下所示:

将 OrderAdmin.php 文件中的 configureFormFields 更改如下:

但这不起作用,因为我无法上传任何文件,这就是我想要从同一个表单上传许多文件并将它们附加到我正在创建的订单的内容。当我访问创建操作时,请参阅所附图像以获得视觉效果:

在此处输入图像描述 在此处输入图像描述

我错过了什么?

0 投票
3 回答
2757 浏览

php - 安装 SonataMediaBundle 后映射异常

我正在尝试设置和使用 SonataMediaBundle 以在 SonataAdminBundle 中使用。我阅读并遵循SMB 文档中的每一步。当我运行命令时:

默认情况下,这会在app/文件夹中创建 Bundle,因此我手动移动到src/它应该在的文件夹中。现在每次我尝试访问我的应用程序时都会收到此错误:

MappingException:在链配置的命名空间 Sonata\MediaBundle\Entity 中找不到类 'Application\Sonata\UserBundle\Entity\User'

而且我不知道为什么,我到处寻找参考资料,但一无所获。任何人都可以帮助我解决这个问题或给我一个线索吗?

0 投票
3 回答
1055 浏览

symfony-sonata - SonataMediaBundle 文件类型的默认图标

我正在使用 SonataMediaBundle,我不想为某些文件类型(例如 pdf、xls、doc)生成图标。我想使用默认图标(例如PDF 图标)。

我一直在阅读 Sonata Media文档,我相信我需要这样的东西:

web/uploads/media/media_bundle/images/default_pdf/file.png或者 web/uploads/media/sonatamedia/files/default_pdf/file.png

两者都不起作用。

机会<format>意味着“小”或“大”,我也试过这个:

web/uploads/media/media_bundle/images/default_small/file.png

我假设这意味着file.png如果需要一个小图标并且文件实例没有自定义图标,则无论 mime 类型如何,都会为每个文件显示。我也尝试使用admin而不是default作为上下文。没有骰子。

图标 src 始终/uploads/media/sonatamedia/files/admin/file.png- 作为绝对路径,实际上并不存在。

我的图标文件是 45px 宽,我在 config.yml 中设置:

文件权限为 644,缓存已清空。我究竟做错了什么?

0 投票
2 回答
2914 浏览

symfony - SonataMediaBundle:找不到文件/图像

我将 SonataMediaBundle 与 SonataAdminBundle 和 Symfony 2.3 一起使用。

当我尝试通过 Sonata 管理界面上传图像时:

  1. 点击“添加新”(app_dev.php/admin/sonata/media/media/create
  2. 点击“图片”(app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.image&context=default
  3. 浏览image.jpg文件并单击“创建”
  4. 这将我带到编辑页面,我可以在其中看到:Item "image.jpg" has been successfully created.

事实上:

  • 在文件夹web\uploads\media\default\0001\01中,我有我的图像文件和 3 个拇指
  • media__media数据库表中我有相应的行
  • 当我web/uploads/media/default/0001/01/使用 Firefox 浏览时,我可以看到我的图像
  • 相应的行出现在媒体列表中(在管理面板中)

但是

  • 图像未显示在媒体列表中(有一个正方形而不是拇指),也未显示在图像编辑页面 ( app_dev.php/admin/sonata/media/media/3/edit?provider=sonata.media.provider.image&context=default)

对于文件,情况更糟:

  1. 点击“添加新”(app_dev.php/admin/sonata/media/media/create
  2. 点击“图片”(app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.file&context=default
  3. 浏览document.zip文件并单击“创建”

这会生成错误 500: The file "" does not exist。并且没有在数据库中创建新行。


解决方案

对于图像问题,我注意到奏鸣曲管理员正在寻找的路径不是好的路径:我在寻找:http://myserver/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

代替http://myserver/myproject/web/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

显然,这是由于 config.yml 的这一部分(在 SonataMedia 文档中定义):

我替换为:

它有效。但我认为在那里硬编码不是一个好主意。而且我想在奏鸣曲文档中这样写是有充分理由的,不是吗?

我的修改正确吗?如果没有,我该怎么办?

无论如何,它并不能解决我的文件上传问题!关于这一点有什么想法吗?

0 投票
4 回答
2460 浏览

symfony-sonata - Sonata Media Bundle 删除画廊

我安装了 Sonata Media Bundle,但我不使用该包的画廊部分。

如何禁用图库?

我正在使用 Symfony 2.3,并且按照文档安装了标准媒体包。

到目前为止的解决方案:

如果您从管理包中查看此问题https://github.com/sonata-project/SonataAdminBundle/issues/460,您可以通过将show_in_dashboard: false标签添加到 yaml 文件来禁用管理员。

为此,我只需添加自己的编译器,然后为我添加此标志:

  1. 创建你的编译器:http ://symfony.com/doc/current/components/dependency_injection/tags.html

  2. 将你的编译器添加到你的包中:http ://symfony.com/doc/2.3/cookbook/service_container/compiler_passes.html

你完成了。如果有更好的解决方案,我很想听听。

编译器示例:

0 投票
2 回答
3503 浏览

php - SonataMediaBundle - 如何使用自定义文件输入

我有一个寻宝项目,我在其中使用 AngularJS 来管理它可能包含的不同问题。这些问题属于不同类型。因此,有些可能包含文件输入,有些可能不包含。在这个项目中,我还使用 Symfony 和 SonataMediaBundle 来管理我的文件和图像。

因为我的 html 模型(主要是我的表单)可以根据用户的操作而改变,所以我不能使用 Symfony 的内置工具来生成表单。因此,我所有的表格都是定制的。当我想要上传一些文件时,这给我带来了 SonataMediaBundle 的问题。如果用户选择了一个文件,当表单被发送时,这个文件将通过 POST 发送到控制器中的一个方法。因此,我想将此接收到的文件发送到 SonataMediaBundle 以便它可以管理它,但是我在文档中的任何地方都没有找到如何做这样的事情。

从理论上讲,这真的很简单。在我的控制器中,当我收到文件输入时,我想让 SonataMedia 管理上传(即复制到正确位置等...),但我不知道应该如何做。

0 投票
2 回答
624 浏览

php - 标签未通过 SonataMediaBundle 的管理员集成进行翻译

我已将SonataMediaBundle添加到我正在处理的项目中,该项目已经实现了SonataAdminBundle

奇怪的一件事是,开箱即用的表单/字段标签没有在管理仪表板或任何 CRUD 组件中进行翻译。

我虽然这是因为这是由捆绑提供的管理员与我编写的管理员,但我也集成了SonataUserBundle并且这些管理员的翻译很好(使用我假设的sonata.admin.label.strategy.native策略,根据这个是默认值,应该生成人类可读的标签)

这是该问题的说明:

未翻译标签的屏幕截图

另一个显示了即使在管理员旁边通过包含 SonataUserBundle 所暴露的翻译仍然无法正常工作。

仪表板上未翻译标签的屏幕截图

如果您需要查看其他内容,请告诉我。

对于版本信息,这是我的composer.json

config.yml的框架部分

0 投票
1 回答
1469 浏览

symfony - Sonata media Liip Imagine 整合

我正在尝试使用 Liip Imagine 按照集成说明使用 Sonata Media 生成缩略图:

http://sonata-project.org/bundles/media/master/doc/reference/extra.html#liip-imagine-bundle-integration

但我无法同时获得参考图像和缩略图的正确路径。我认为我的问题在于这个配置点:

使用 Sonata 媒体的原始配置

参考图片 url 可以,但不会生成拇指,它们的 url 如下所示:

以下集成说明:

其中 myapp.test 指向我的基本根应用程序,默认 htaccess 为 symfony,拇指是使用公共 url 正确生成的,例如:

但参考图片的公共网址是:

不存在,正确的网址是:

所有这些网址都是从奏鸣曲管理员复制的。

遵循 liipimagine 集成说明的设备可能需要触摸其他内容以获得正确的参考图像 url?

我在用:

0 投票
1 回答
906 浏览

symfony - 如何删除 SonataAdminbundle 列表中 SonataUserBundle 或 SonataMediaBundle 的默认块?

我不知道如何删除UserBundle的默认块MediaBundle(只是其中之一......)。

这是我的 config.yml:

还有我的security.yml:

0 投票
1 回答
1223 浏览

php - 在 Sonata Admin 的实体中包含媒体类型

我正在制作一个名为 Article 的实体,它应该有一些文字、一段视频和几张图片。对于后者,我通过允许用户创建媒体然后在其中包含图像来做到这一点,现在的问题是......我如何将该媒体与文章联系起来?我是否有“媒体列表选择器”可供选择?