Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 我如何才能建立团队,在迁移和雄辩中为用户提供不同的位置?_Laravel_Eloquent - Fatal编程技术网

Laravel 我如何才能建立团队,在迁移和雄辩中为用户提供不同的位置?

Laravel 我如何才能建立团队,在迁移和雄辩中为用户提供不同的位置?,laravel,eloquent,Laravel,Eloquent,我是一名学生,试图了解以下设置的正确迁移和模型功能: 我的球队有不同的位置,比如顶部或中部(可以是空的),还有一个老板。我希望能够使用雄辩来获得: 用户是(“$user->ownerOf”)所有者的所有团队 用户所在的所有团队(不需要职位,“$user->teams”) 属于团队的所有用户($team->users) 每个职位的用户(“$team->top”) 编辑:用户可以在多个团队中,但只能在给定团队中的一个职位上 目前,我为没有外键的用户使用了一个表,为团队使用了一个表,该表为不同位置的用

我是一名学生,试图了解以下设置的正确迁移和模型功能:

我的球队有不同的位置,比如顶部或中部(可以是空的),还有一个老板。我希望能够使用雄辩来获得:

  • 用户是(“$user->ownerOf”)所有者的所有团队
  • 用户所在的所有团队(不需要职位,“$user->teams”)
  • 属于团队的所有用户($team->users)
  • 每个职位的用户(“$team->top”)
  • 编辑:用户可以在多个团队中,但只能在给定团队中的一个职位上

    目前,我为没有外键的用户使用了一个表,为团队使用了一个表,该表为不同位置的用户表提供了多个外键。下面是我当前的创建团队表迁移:

     $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)。对于整个设置,有更好的解决方案吗?比如一张新桌子


    提前谢谢

    这不起作用,因为一个用户可以在多个团队中。很抱歉没有说清楚,我编辑了这个问题。然后为团队和用户创建一个表,为用户创建另一个表,为用户创建一个表,并使用belongtomy relationship由于职位不同,我需要做些特殊的事情吗?查看belongtomy relationship上的laravel官方文档以更好地理解
    public function users(){
      return $this->hasMany(Users::class,'team_id','id');
    }