iol*_*leo 12 serialization symfony jmsserializerbundle
我有OneToMany关系中的实体:
预测 - >有很多 - >砖块
我为Resources/config/serializer/Entity.xxx.ymlxxx是实体名称的每个人创建了序列化映射.
每个实体都将排除策略设置为ALL,并且其中一些属性被公开,例如:
Acme\ForecastBundle\Entity\Forecast:
exclusion_policy: ALL
xml_root_name: forecast
properties:
id:
expose: true
type: integer
regionUid:
expose: true
type: string
description:
expose: true
type: string
bricks:
expose: true
type: array<Acme\ForecastBundle\Entity\Brick>
xml_list:
inline: true
entry_name: brick
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我{{ forecast|serialize|raw }}得到了:
预测 - >正如我所料 - >只有暴露的字段被序列化
砖块集合 - >所有属性都被序列化 - >似乎我Entity.Brick.yml被忽略了......为什么?
在砖块我只有ID和名称暴露..但在序列化输出我有所有属性(created_at,updated_at ..等等)..为什么?它们应该被"exclusion_policy:ALL"排除在外.似乎没有使用嵌套集合的配置.
Acme\ForecastBundle\Entity\Brick:
exclusion_policy: ALL
xml_root_name: brick
properties:
id:
expose: true
type: integer
name:
expose: true
type: string
Run Code Online (Sandbox Code Playgroud)
编辑:
是的,我在.yml配置中的每次更改后都清除了缓存
在提出一些建议之后,我将@ExclusionPolicy("ALL")注释添加到Brick类和@Expose on ID,只是为了看看会发生什么......然后它突然起作用了!不仅暴露了ID,而且一切都像我的YML配置.
所以我删除了注释..它仍然有效!
因此,似乎添加Annotations以某种方式强制序列化程序识别我的YML配置.我不知道为什么.这让我担心.
是否有可能APC缓存有罪?我确实清楚了很多次Symfony2缓存,但APC只有几个.
iol*_*leo 10
由于没有anwsers,我会发布我最终做/发现的内容(供将来参考和遇到同样问题的人).我引用我的编辑:
在提出一些建议之后,我将@ExclusionPolicy("ALL")注释添加到Brick类和@Expose on ID,只是为了看看会发生什么......然后它突然起作用了!不仅暴露了ID,而且一切都像我的YML配置.
所以我删除了注释..它仍然有效!
因此,似乎添加Annotations以某种方式强制序列化程序识别我的YML配置.我不知道为什么.这让我担心.
| 归档时间: |
|
| 查看次数: |
6814 次 |
| 最近记录: |