我是一名学生,试图了解以下设置的正确迁移和模型功能:
我有一些位置不同的团队,例如高层或中层(可以为空),还有一个所有者。我希望能够使用Eloquent来获取:
编辑:用户可以属于多个团队,但只能位于给定团队中的一个职位上
此刻,我为没有外键的用户使用一个表,为团队使用的表为不同位置的用户表使用多个外键。下面是我当前的create_teams_table迁移:
$table->bigIncrements('id');
$table->string('name');
$table->bigInteger('owner')->unsigned();
$table->foreign('owner')->references('id')->on('users')->onDelete('cascade');
$table->bigInteger('top_id')->nullable()->unsigned();
$table->foreign('top_id')->references('id')->on('users')->onDelete('cascade');
$table->bigInteger('jungle_id')->nullable()->unsigned();
$table->foreign('jungle_id')->references('id')->on('users')->onDelete('cascade');
还有更多职位,但我认为这足以理解这个概念。
我可以通过以下方式为我的团队模型中的职位获取不同的用户
public function ownerUser()
{
return $this->belongsTo('App\Models\User', 'owner');
}
但是我找不到一种方法来吸引团队中的每个用户(例如$ team-> users)。对于整个设置是否有更好的解决方案?例如新表?
谢谢!
答案 0 :(得分:0)
public function users(){
return $this->hasMany(Users::class,'team_id','id');
}