我正在使用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"