我正在使用Symfony2和一些捆绑包构建一个小型API。我使用FOSMessageBundle
在我的应用中发送私信。
我还使用JMSSerializer
FOSRestBundle
来输出JSON对象。
我想控制我的Message实体的哪些属性被序列化并作为JSON发送。为此,我同时使用了注释和YML配置文件,它适用于我的所有实体甚至我的FOSUserBundle
用户模型。但由于某些原因,它对我的Message实体不起作用。这是我的代码:
我的映射文件
#/app/serializer/MyVendor/Entity.Message.yml
MyVendor\CoreBundle\Entity\Message:
exclusion_policy: None
properties :
sender :
expose : false
exclude : true
使用注释的我的实体
<?php
namespace MyVendor\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use FOS\MessageBundle\Entity\Message as BaseMessage;
use FOS\MessageBundle\Model\ThreadInterface;
use FOS\MessageBundle\Model\ParticipantInterface;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
/**
* @ExclusionPolicy("all")
*/
class Message extends BaseMessage
{
/**
* @var \FOS\MessageBundle\Model\ParticipantInterface
* @Exclude
*/
protected $sender;
由于
答案 0 :(得分:1)
已解决我忘记在config.yml中指定元数据文件路径
jms_serializer:
metadata:
auto_detection: true
directories:
FOSMessageBundle:
namespace_prefix: "FOS\\MessageBundle"
path: "%kernel.root_dir%/serializer/FOSMessageBundle"