首页 > 解决方案 > 从组中检索所有用户 [laravel]

问题描述

我有 3 个组和 16 个随机属于这些组的用户。我在用

$groups = \App\Group::with('users')->get();

获取组和用户的操作数。但是我只有 1 个用户组,其他组(链接在中间表中)是空的。

在组模型中,我有这些:

class Group extends Model
{
protected $table = 'crm_groups';
protected $primaryKey = 'group_id';
protected $fillable = ['name'];
public $timestamps = true;

public function users()
{
    return $this->belongsToMany('\App\User', 'crm_user_groups', 'user_id', 'group_id');
}

}

数据库:

 INSERT INTO `crm_user_groups` (`id`, `group_id`, `user_id`) VALUES
 (1,    1,  1),
 (2,    2,  1),
 (3,    2,  1),
 (4,    3,  1),
 (5,    2,  14),
 (6,    2,  15),
 (7,    3,  16);

标签: laravellaravel-blade

解决方案


您通过了参数的错误位置。

public function users()
{
    return $this->belongsToMany('\App\User', 'crm_user_groups','group_id', 'user_id');
}

如果您从 Group 模型访问它,那么第一个参数应该是'group_id'然后'user_id'.

第三个参数定义关系的模型的外键名称,而第四个参数是要加入的模型的外键名称。


推荐阅读