Skip to content

集合中关联外键字段全部为null时,预载入函数eagerlySet 无法正常工作,导致在调用时产生额外的懒加载查询 #2620

Open
@honking

Description

@honking

library/think/model/relation/BelongsTo.php
预载入函数eagerlySet 在处理的时候可能会导致进行懒加载读取的情况

当查询的数据集里的关联外键字段值全部都为null的情况下,函数中的$range值为空数组。
这时,关联模型的预载入处理函数 eagerlySet 无法为该数据集设置相应的关联对象,导致后续代码在遍历读取数据集的关联对象的时候,框架进行了懒加载,导致了数据库遍历查询。
在eagerlySet 里需要对$range为空的情况进行默认关联对象的设置。

这个问题在其他的关联类型也存在

Metadata

Metadata

Assignees

No one assigned

    Labels

    ORMTP5ThinkPHP5.0/5.1

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions