Laravel's hasManyThrough using wrong key on join?
我在Laravel的
我有"用户"和"组",而不是标准的联接表或自定义枢轴模型,而是使用另一个称为GroupMembership的Eloquent模型来链接两者。这是类的相关部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | class User extends Model { use SoftDeletes; protected $primaryKey = 'user_id'; public function groupMemberships() { return $this->hasMany(GroupMembership::class); } } class GroupMembership extends Model { protected $primaryKey = 'group_membership_id'; public function user() { return $this->belongsTo(User::class); } public function group() { return $this->belongsTo(Group::class); } } class Group extends Model { use SoftDeletes; protected $primaryKey = 'group_id'; public function groupMemberships() { return $this->hasMany(GroupMembership::class); } public function users() { return $this->hasManyThrough(User::class, GroupMembership::class, 'group_id', 'user_id', 'group_id' ); } } |
我的问题出在
1 2 3 4 5 | select `users`.*, `group_memberships`.`group_id` from `users` inner join `group_memberships` on `group_memberships`.`group_membership_id` = `users`.`user_id` where `group_memberships`.`group_id` = '10' and `users`.`deleted_at` is null |
在该查询中,内部联接条件错误。而不是
我在做什么错?
感谢这篇文章。我不想
1 2 3 | public function users() { return $this->belongsToMany(User::class, 'group_memberships'); } |
您还可以添加
这里唯一的缺点是,当使用