- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个实体希望使用 JMSSerializerBundle 进行序列化。 Music
实体有一个带有 exclusion_policy: NONE
的映射文件.Music
实体有实体的字段User
来自 FOSUserBundle
. User
实体有一个带有 exclusion_policy: ALL
的映射文件一些字段设置为 expose: true
,所以它们将被序列化。
问题是,User
字段被完全序列化。如果我更改 User
的映射文件没有关系实体。
这是它的外观:
#My/Bundle/Resources/config/serializer/Entity.Music.yml
xxx\xxx\Entity\Music:
exclusion_policy: NONE
#My/Bundle/Resources/config/serializer/Entity.User.yml
xxx\xxx\Entity\User:
exclusion_policy: ALL
properties:
id:
expose: true
username:
expose: true
username_canonical:
exclude: true
email:
exclude: true
email_canonical:
exclude: true
enabled:
exclude: true
salt:
exclude: true
password:
exclude: true
last_login:
exclude: true
confirmation_token:
exclude: true
password_requested_at:
exclude: true
groups:
exclude: true
locked:
exclude: true
expired:
exclude: true
expires_at:
exclude: true
roles:
expose: true
credentials_expired:
exclude: true
credentials_expired_at:
exclude: true
FOS\UserBundle\Entity
类,并且也无权访问我试图排除的父级 protected 字段。
最佳答案
我打赌 xxx\xxx\Entity\User:
指您的 自己的命名空间和类 .
如果是,则是 错 办法。
规则必须应用于属性所在的类。
鉴于您在配置中公开的属性,我猜您正在使用 FOSUserBundle
.
因此,您必须在 FOS\UserBundle\Model\User
上应用您的规则。 .
那么你需要添加一个JMSSerializer
配置以指示给定命名空间的序列化器元数据所在的位置。
它应该看起来像:
jms_serializer:
metadata:
auto_detection: true
directories:
FOSUserBundle:
namespace_prefix: "FOS\\UserBundle"
path: "@YourUserBundle/Resources/config/serializer/fos"
fos/
你应该有 Model.User.yml 的目录
FOS\UserBundle\Model\User:
exclusion_policy: ALL
properties:
id:
expose: true
groups: [list, details]
username:
expose: true
groups: [details]
email:
expose: true
groups: [me]
roles:
expose: true
groups: [details]
class Foo {
protected $foo;
}
class Bar extends Foo {
protected $bar;
}
Foo:
exclusion_policy: ALL
properties:
foo:
expose: true
Bar:
exclusion_policy: ALL
properties:
bar:
expose: true
Bar:
exclusion_policy: ALL
properties:
foo:
expose: true
bar:
expose: true
bar
将被应用(和暴露)。
关于serialization - JMSSerializerBundle。无法控制第三方元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960141/
我需要在 symfony 2 上为我的网站实现 RESTful API,所以我使用 FOSRestBundle + JMSSerializerBundle 我的实体有这样的序列化程序 yml: Acm
我正在尝试为 JMS Serializer Bundle 使用自定义处理程序 class CustomHandler implements SubscribingHandlerInterface {
我有两个实体希望使用 JMSSerializerBundle 进行序列化。 Music实体有一个带有 exclusion_policy: NONE 的映射文件. Music实体有实体的字段User来自
我安装了 FOSRestBundle,但它需要 JMSSerializerBundle。 我在我的部门中添加了以下几行: [JMSSerializerBundle] git=git://git
我有一个简单的问题,但我不知道如何解决。 我在 Symfony2 中有一个带有 FOSRestBundle + JMSSerializerBundle 的项目。在我的实体中,我有一些日期时间字段,用户
假设我想创建一个如下所示的 XML 响应: 1234 Red Stapler 3.14 给定一个如下所示的域模型: 1234 Red Stapler 3.14
我正在构建一个 REST API,我想让我的用户可以选择通过 URL 参数返回哪些字段,例如 /users?fields=username,email,address.city,address.cou
在使用一个附加字段 $name 序列化 User 实例时遇到问题,该字段从 FOSUserBundle 扩展了基本 User: name = $name; return $this;
我已经为 JMS 序列化配置了一个访问者: class MyHandler implements SubscribingHandlerInterface { public static functio
我正在使用 JMSSerializerBundle 将我的 symfony 实体序列化为 JSON。我有以下类结构: abstract class A {} abstract class B exte
我在 Symfony2 项目中结合使用 JMSSerializerBundle 和 Doctrine2。 我将类属性定义为 double 值,因为它代表产品价格。 /** * Price of pr
我想使用 JMSSerializer 处理序列化和反序列化的单个对象属性。假设我们有这个类: class Task { const STATUS_PENDING = 0; const
我在使用 JMS Serializer 排除某些 KNP Paginator 属性时遇到问题。 首先,这包含在 composer.json 中 ... "jms/serializer-bundle":
我正在尝试为以下项目安装供应商 connect在 osx lion 上。 cd /tmp git clone git://github.com/dsyph3r/connect cd connect g
我的 symfony2 项目中有一个 bundle 和框架之外的自定义实体。 我需要将 json 数据设置到该实体中,但无法将正确的配置应用于用户 yaml 文件。 应用程序/config/confi
我只想使用 JMSSerializerBundle 和 FOSRestBundle 公开 User 类的几个属性。序列化程序包似乎没有读取我的配置文件。 我的用户类别位于 src/AppBundle/
我有实体: isGranted('ROLE_ADMIN')){ throw new AccessDeniedException('Only for Admin');
在从数据库获取实体(通过 findAll() )之后以及将结果序列化为 json 之前,我需要应用一些逻辑。 我想在某些字段上添加翻译。我知道我可以通过迭代每个实体并在 Controller 中应用我
我正在尝试设置不同的组,以根据上下文实现不同类型的实体序列化。 我的配置是这样的: My\FooBundle\Entity\Asset: exclusion_policy: ALL a
我在 doctrine2 设置中有 Category OneToMany Post 关联,如下所示: 类别: ... /** * @ORM\OneToMany(targetEntity="Post"
我是一名优秀的程序员,十分优秀!