Hak*_*kim 2 configuration-files symfony jmsserializerbundle
我想使用JMSSerializerBundle和FOSRestBundle仅公开我的User类的一些属性.似乎序列化程序包没有读取我的配置文件.
我的用户类在src/AppBundle/Entity/User
,它扩展了FOSUserBundle用户类.
这是我的User类:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Component\Validator\Constraints as Assert;
/**
* User
*
* @ORM\Table(name="backoffice_user")
* @ORM\Entity(repositoryClass="AppBundle\Entity\Repository\UserRepository")
*/
class User extends BaseUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="lastname", type="string", length=70)
*/
private $lastname;
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=70)
*/
private $firstname;
}
Run Code Online (Sandbox Code Playgroud)
这是我的app/config.yml文件
jms_serializer:
metadata:
debug: true
auto_detection: true
Run Code Online (Sandbox Code Playgroud)
和yml mappgin文件在src/AppBundle/Resources/config/serializer/Entity.User.yml
:
AppBundle\Entity\User:
exclusion_policy: ALL
exclude: true
properties:
email:
exclude: true
expose: true
Run Code Online (Sandbox Code Playgroud)
该文件未被读取(或至少未被考虑),因为我的API返回了我的实体的所有字段.
我忘记了什么吗?
未加载映射文件,因为序列化程序将规则应用于定义属性的类.在你的情况下 - 就是这样FOS\UserBundle\Model\User
.你需要的是覆盖Third-Party Metadata
- 一个简短的样本可以在bundle的文档中看到
在你的config.yml中,jms_serializer
应该看起来像这样:
jms_serializer:
metadata:
auto_detection: true
directories:
FOSUserBundle:
namespace_prefix: "FOS\\UserBundle"
path: "@AppBundle/Resources/config/serializer"
Run Code Online (Sandbox Code Playgroud)
在目录中serializer
你应该有一个名为Model.User.yml
配置的文件,如下所示:
FOS\UserBundle\Model\User:
exclusion_policy: ALL
# add your desired configuration below.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4087 次 |
最近记录: |