think-orm icon indicating copy to clipboard operation
think-orm copied to clipboard

一对多关联多层访问时数据异常

Open gitlilimin opened this issue 2 years ago • 0 comments

【简述】 A、B两个模型一对多关联,直接访问B->A->Bs时,得到的结果不符合预期

【环境】 [MySQL] 表 User ,通过 team_id 关联一个 Team 表 Team

[model] 模型 User,定义关联:Team -> belongTo(Team::class, 'team_id', 'id') 模型 Team,定义关联:Users -> hasMany(User::class, 'team_id, 'id')

【复现场景】 [controller] $user = User::find(1); dump($user->team->users); // 得到的是$user自身,预期应该得到 user 所在 team 的所有 users // 这里采用 数组方式 $user['team']['users'] 也是一样的结果

$user = User::with(['team'=>['users']])->find(2); dump($user->team->users); // 得到的结果是正确的 think\model\Collection

gitlilimin avatar Mar 12 '23 14:03 gitlilimin