Maison > Questions et réponses > le corps du texte
P粉4712073022023-07-27 13:42:45
Sur la base de votre explication, je l'ai fait comme suit :
Table******************
table project_user :
Schema::create('project_user', function (Blueprint $table) { $table->unsignedBigInteger('project_id'); $table->unsignedBigInteger('user_id'); });
permission_role table :
Schema::create('permission_role', function (Blueprint $table) { $table->unsignedBigInteger('permission_id'); $table->unsignedBigInteger('role_id'); });
role_user table :
Schema::create('role_user', function (Blueprint $table) { $table->unsignedBigInteger('role_id'); $table->unsignedBigInteger('user_id'); });
Modèles *************
Modèle d'utilisateur :
/** * Team Relationship * * @return BelongsToMany */ public function teams(): BelongsToMany { return $this->belongsToMany(Team::class); } /** * Project Relationship * * @return BelongsToMany */ public function projects(): BelongsToMany { return $this->belongsToMany(Project::class); } /** * Role Relationship * * @return BelongsToMany */ public function roles(): BelongsToMany { return $this->belongsToMany(Role::class, 'role_user'); }
Modèle d'équipe :
/** * User Relationship * * @return BelongsToMany */ public function users(): BelongsToMany { return $this->belongsToMany(User::class); } /** * Project Relationship * * @return HasMany */ public function projects(): HasMany { return $this->hasMany(Project::class); }
Modèle de projet :
/** * Team Relation * * @return BelongsTo */ public function team(): BelongsTo { return $this->belongsTo(Team::class); } /** * User Relation * * @return BelongsToMany */ public function users(): BelongsToMany { return $this->belongsToMany(User::class); }
Modèle de rôle :
/** * Permission Relation * * @return BelongsToMany */ public function permissions(): BelongsToMany { return $this->belongsToMany(Permission::class, 'permission_role'); } /** * User Relation * * @return BelongsToMany */ public function users(): BelongsToMany { return $this->belongsToMany(User::class,'role_user'); }
Modèle d'autorisations :
/** * Role Relation * * @return BelongsToMany */ public function roles(): BelongsToMany { return $this->belongsToMany(Role::class, 'permission_role'); }
Tout d'abord, nous créer notre rôle souhaité. Par exemple :
Rôle 1 : Nom = Super Administrateur, Type = Utilisateur
Rôle 2 : Nom = Chef d'équipe, Type = Équipe
Rôle 3 : Nom = Développeur de projet, Type = Projet
Maintenant, nous nous attendrons à des rôles attribués à nos utilisateurs. Ces rôles sont stockés dans la table role_user.
Ensuite, en fonction de ces rôles, vous pouvez déterminer les responsabilités de chaque utilisateur au sein de chaque projet et équipe.