首页 > 解决方案 > 如何在序列化过程中禁用所有相关实体的自动加载?

问题描述

带有 JMS 的 Symfony 4。

Parent 类与 OneToMany 子类相关联。在存储库中,我得到了一些父母和一些孩子(左加入条件)。但是,当尝试序列化父级时,JMS 会自动从数据库中获取所有(!)子级,从而对数据库进行额外的查询。我怎样才能避免这种情况?JMS 配置中有任何选项吗?

我唯一想到的是VirtualProperty()版本,我将在其中过滤已经在实体中的孩子。但这不是很有效。

升级版。我想序列化这个字段,但不是所有的子实体。只有满足条件。在存储库中我这样做->leftJoin('p.children', 'c', 'WITH', 'c.foo = bar')了,但是序列化程序通过单独的请求加载不在条件中的元素。这就是问题

标签: symfonyjmsjmsserializerbundle

解决方案


使用序列化组来选择您想要的属性并使用 maxDepth 限制子级?


推荐阅读