所以我试图找出如何在Laravel中使用数据透视表。我试图阅读并理解文档。而且我无法理解为什么用户只能对一个"部门"进行操作。我不希望用户属于他们的部门"。
部门模型
public function users()
{
return $this->belongsToMany(User::class, 'department_user', 'user_id', 'department_id');
}
对于用户模型,我想要像
这样的东西public function department()
{
return $this->belongsTo(Department::class);
}
但Laravel报道null
。因为department_id
在用户行中不存在?如何使用belongsToMany
和belongsTo
?
答案 0 :(得分:1)
我认为你对你的关系类型感到困惑。如果我理解正确的话:
Department
hasMany
User
s。User
belongsTo
一个Department
。这种一对多关系类型不需要数据透视表,可以这样编写:
class Department extend Eloquent
{
public function users()
{
return $this->hasMany(User::class);
}
}
class User extend Eloquent
{
public function department()
{
return $this->belongsTo(Department::class);
}
}
这将要求users
表具有department_id
外键。