think-orm 2.0.53 find() 查询用bind()无法绑定到父模型解决方案

浏览:245 发布日期:2022/04/26 分类:ThinkPHP6专区
示例:
GoodsModel::where('id', $id)->with([
'detail' => function ($query) {
$query->bind(['detail' => 'detail']);
}])->find();
这样把关联属性绑定到父模型没效果,但只要把find()改成select()就是没问题的,经过大半天排查,发现问题出在下面

think\model\relation\HasOne;
修改文件 278行
原代码:
$result->setRelation($relation, $relationModel);

if (!empty($this->bindAttr)) {
// 绑定关联属性
$this->bindAttr($result, $relationModel);
}
改成:
if (!empty($this->bindAttr)) {
// 绑定关联属性
$this->bindAttr($result, $relationModel);
} else {
$result->setRelation($relation, $relationModel);
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>