FOSMessageBundle和JMSSerializer不能一起工作



我正在使用Symfony2和一些bundle构建一个小API。我使用FOSMessageBundle在我的应用程序中发送私信。我也使用JMSSerializer沿FOSRestBundle输出JSON对象。

我想控制我的Message实体的哪些属性被序列化并作为JSON发送。为此,我使用注释和YML配置文件,它适用于我所有的实体,甚至我的FOSUserBundle用户模型。但由于某种原因,它不适用于我的Message实体。下面是我的代码:

My Mapping file

#/app/serializer/MyVendor/Entity.Message.yml
MyVendorCoreBundleEntityMessage:
    exclusion_policy: None
    properties :
        sender :
            expose : false
            exclude : true

My Entity using annotations

<?php
namespace MyVendorCoreBundleEntity;
use DoctrineORMMapping as ORM;
use DoctrineCommonCollectionsArrayCollection;
use FOSMessageBundleEntityMessage as BaseMessage;
use FOSMessageBundleModelThreadInterface;
use FOSMessageBundleModelParticipantInterface;
use JMSSerializerAnnotationExclusionPolicy;
use JMSSerializerAnnotationExpose;
/**
 * @ExclusionPolicy("all")
 */
class Message extends BaseMessage
{
        /**
        * @var FOSMessageBundleModelParticipantInterface
        * @Exclude
        */
        protected $sender;

谢谢

SOLVED我忘记在config.yml中指定元数据文件路径

jms_serializer:
   metadata:
      auto_detection: true
      directories:
         FOSMessageBundle:
            namespace_prefix: "FOS\MessageBundle"
            path: "%kernel.root_dir%/serializer/FOSMessageBundle"

相关内容

  • 没有找到相关文章

最新更新