- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 FOSRestBundle 和 JMS Serializer 返回一个带有指向 Sonata\MediaBundle\Entity 的 ManyToOne 链接的 JSON 对象('Module')。我该怎么做呢?
这是我做的一个黑客,但不认为这是最好的做法。
class Module
{
...
/**
* @var Application\Sonata\MediaBundle\Entity\Media
*
* @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", inversedBy="module")
* @ORM\JoinColumn(name="hero_image_id", referencedColumnName="id")
* @JMS\Expose()
*/
private $heroImage;
...
}
class Media extends BaseMedia
{
...
/**
* A Quick hack not the best method.
*
* @JMS\VirtualProperty
* @JMS\SerializedName("url")
*
* @return string
*/
public function getUrlMethod()
{
global $kernel;
$imageProvider = $kernel->getContainer()->get('sonata.media.provider.image');
return $imageProvider->generatePublicUrl($this, 'reference');
}
...
}
<?php
namespace AXO\APIBundle\Listener\Serialization;
use JMS\DiExtraBundle\Annotation\Service;
use JMS\DiExtraBundle\Annotation\Tag;
use JMS\DiExtraBundle\Annotation\Inject;
use JMS\DiExtraBundle\Annotation\InjectParams;
use JMS\Serializer\EventDispatcher\EventSubscriberInterface;
use JMS\Serializer\EventDispatcher\ObjectEvent;
use JMS\Serializer\GraphNavigator;
/**
* Add data after serialization
*
* @Service("axo.listener.serializationlistener")
* @Tag("jms_serializer.event_subscriber")
*/
class SerializationListener implements EventSubscriberInterface
{
/**
* @inheritdoc
*/
static public function getSubscribedEvents()
{
return array(
array('event' => 'serializer.post_serialize', 'class' => 'Application\Sonata\MediaBundle\Entity\Media', 'method' => 'onPostSerialize'),
);
}
public function onPostSerialize(ObjectEvent $event)
{
global $kernel;
$imageProvider = $kernel->getContainer()->get('sonata.media.provider.image');
$event->getVisitor()->addData('url',$imageProvider->generatePublicUrl($event->getObject(), 'reference'));
}
}
最佳答案
您可能想查看 Add extra fields using JMS Serializer bundle正如它有一个例子,关于如何向依赖于外部类的序列化数据添加额外的字段。
关于jms - FOSRestbundle、JMS Serializer 和 SonataMediaBundle 返回图像的公共(public) url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956983/
可能应该命名为:“SonataMediaBundle - 缺少的操作方法在哪里?”。 我已经使用 SonataAdminBundle 和 SonataDoctrineORMAdminBundle(以及
我有一个寻宝游戏项目,我在其中使用 AngularJS 来管理它可能包含的不同问题。这些问题有不同的类型。因此,有些可能包含文件输入,有些可能不包含。在这个项目中,我还使用 Symfony 和 Son
我正在尝试设置和使用 SonataMediaBundle 以便在 SonataAdminBundle 中使用。我阅读并遵循了 docs for SMB 中的每一步.当我运行命令时: php app/c
我想知道如何在 Symfony2 中包装 aws php sdk ( aws/aws-sdk-php ) 以便用作 cdn 和 SonataMediaBundle . 我目前的奏鸣曲配置: sonat
我尝试按照描述安装 SonataMediaBundle here . 安装后出现此错误: PHP Fatal error: Interface 'Sonata\CoreBundle\Model\Ma
所以我想从 SonataMediaBundle 的形式中删除“Unlink”thickbox 和“Binary content”: 我在谷歌上什么也没找到。我应该使用 Javascript 来隐藏它们
我正在使用 SonataMediaBundle 来跟踪我的图像。我可以使用 Sonata 的助手在 Twig 中渲染图像: {% media user.profilepic, 'reference'
我需要在我的配置中添加 .svg 文件扩展名。 目前在我的项目中我还有其他扩展,如(pdf、图像) 我做了以下修改 将新的 svg_file 添加到context 添加了文件提供者(在配置文件的末尾)
我正在尝试扩展 SonataMediaBundle 的媒体类。我想生成自己的媒体以添加更多关系和属性。 但现在我遇到了这个错误: Impossible to invoke a method ("id"
我正在尝试通过 FOSRestBundle 和 JMS Serializer 返回一个带有指向 Sonata\MediaBundle\Entity 的 ManyToOne 链接的 JSON 对象('M
我正在尝试在我的 Sonata 项目上配置 AWS s3 文件系统,但我总是收到以下错误: The configured bucket "my-bucket" does not exist. 我的 s
我正在使用 SonataMediaBundle,直到现在我一直在 Symfony 的 web 文件夹中公开上传文件。这是我的配置文件的一部分: contexts: default: # th
SonataMediaBundle 曾经可以正常工作。自从我安装并配置了 SonataPageBundle 后,它就不再工作了。起初,我有一个 500 Internal Server Error 作为
我使用 SonataMediaBundle 上传了一些文件,但是当我想添加另一个文件时,我遇到了那个错误。 你有什么想法吗? 这是堆栈错误: in /var/www/znata.com/vendor/
我是一名优秀的程序员,十分优秀!