2015-10-01 100 views
0

我正在用Symfony2和一些軟件包構建一個小的API。我正在使用FOSMessageBundle在我的應用中發送私人消息。 我還沿着FOSRestBundle使用JMSSerializer來輸出JSON對象。FOSMessageBundle和JMSSerializer不能一起工作

我想控制我的消息實體的哪些屬性被序列化並作爲JSON發送。爲此,我使用註釋和YML配置文件,它適用於我所有的實體,甚至我的用戶模型。但由於某種原因,它不適用於我的消息實體。這裏是我的代碼:

我的映射文件

#/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; 

感謝

回答

1

解決我忘了指定config.yml元數據文件路徑

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