laravel - 从组中检索所有用户 [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);
解决方案
您通过了参数的错误位置。
public function users()
{
return $this->belongsToMany('\App\User', 'crm_user_groups','group_id', 'user_id');
}
如果您从 Group 模型访问它,那么第一个参数应该是'group_id'
然后'user_id'
.
第三个参数是定义关系的模型的外键名称,而第四个参数是要加入的模型的外键名称。
推荐阅读
- python - TCPServer 与 HTTPServer
- c# - 如何告诉 NewtonSoft.Json.JsonConvert 将枚举序列化为字符串而不是 int
- database - 使用 Cassandra 创建实时应用程序的正确方法
- java - 球不动;线?
- node.js - 如何遍历项目列表然后有效地写入 DynamoDB?
- java - 从不同的类向 JTable 添加数据
- roku - 如何将 Roku Scenegraph GridView 转换为小写
- swift - 什么是 Swift 中的列表,如何在列表中使用下标?
- python - 机器人框架:创建模板
- google-sheets - 使用 LOOKUP 时在表格中添加包含数据的新行