一个部门可以属于ToMany,但一个用户只能属于部门?如何正确旋转?

时间:2018-04-18 22:38:47

标签: laravel eloquent

所以我试图找出如何在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在用户行中不存在?如何使用belongsToManybelongsTo

撤消此数据透视表查找

1 个答案:

答案 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外键。