Laravel关系:一个部门有多个职级,一个职级有1个部门,一个用户只有1个职级

Laravel Relationship: A division has many ranks, a rank has 1 division, and a user has only 1 rank

例如:

部门:

部门排名

一个用户只会被分配一个等级。例如,它们将是“等级 1”。

这个场景究竟需要什么样的关系?表格设置应该是什么样子?

您的 division table 将是

id | name

您的 rank table 将是

id | division_id | name

你的 user table 会是

id | name

你的 user_rank table 会是

id | user_id | rank_id

根据 Laravel

中的关系

部门型号

class Division extends Model
{
    protected $table = 'divisions';
    public function ranks()
    {
        return $this->hasMany('App\Rank','rank_id','id');
    }
}

排名型号

class Rank extends Model
{
    protected $table = 'ranks';
    public function divison()
    {
        return $this->belongsTo('App\Divison','rank_id','id');
    }
    public function users()
    {
        return $this->belongsToMany('App\User',''user_rank','rank_id','user_id');
    }
}

用户模型

class User extends Model
{
    protected $table = 'users';
   
    public function ranks()
    {
        return $this->belongsToMany('App\Rank',''user_rank','user_id','rank_id');
    }
}