gpt4 book ai didi

php - 如何在 Doctrine 2 中公开字段 "break lazy loading"?

转载 作者:可可西里 更新时间:2023-10-31 22:40:52 27 4
gpt4 key购买 nike

当我运行 doctrine orm:validate-schema 时,它会弹出一堆警告,提示我的映射列是公开的,并且没有使用 getter/setter 方法来包装它们。它说他们“打破了延迟加载”。我可以理解如何将关联集合 公开可能会出现问题(我确实将它们设为私有(private)并将它们包装起来),但这对对象上的字段有何影响?据我所知,字段已全部加载。

最佳答案

尽管我当然不是 Doctrine2 专家,但我会试一试。

从我的(有限的)使用和测试看来,Doctrine 可能会给你一个相关的对象而不加载该对象的数据。届时公共(public)属性将打破延迟加载。

Doctrine 在请求持久化数据时延迟加载,而不是在请求包含持久化数据的对象时延迟加载。

更新:我查看了 actual proxy code看来我原来的理解大部分是正确的。在调用对象的方法之前,代理对象不会自行加载。因此,对公共(public)属性的任何请求都不会加载数据。

关于php - 如何在 Doctrine 2 中公开字段 "break lazy loading"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com