Laravel关系:一个部门有多个职级,一个职级有1个部门,一个用户只有1个职级
Laravel Relationship: A division has many ranks, a rank has 1 division, and a user has only 1 rank
例如:
部门:
- A 组
- B 组
- C 区
- 等...
部门排名
- 甲组
-- 排名 1,排名 2,排名 3,...
- 乙组
-- 排名 a, 排名 b, 排名 c, ...
- 等..
一个用户只会被分配一个等级。例如,它们将是“等级 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');
}
}
例如:
部门:
- A 组
- B 组
- C 区
- 等...
部门排名
- 甲组 -- 排名 1,排名 2,排名 3,...
- 乙组 -- 排名 a, 排名 b, 排名 c, ...
- 等..
一个用户只会被分配一个等级。例如,它们将是“等级 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');
}
}