Laratrust zeigen die Benutzerrolle im TeamPhp

PHP-Programmierer chatten hier
Guest
 Laratrust zeigen die Benutzerrolle im Team

Post by Guest »

Ich versuche, eine Verbindung zwischen Teams und Benutzern herzustellen. /> Lassen Sie uns ein Team auswählen (sagen wir: team_id = 1):

Code: Select all

$team = Team::where('id', $request->team_id)->first();

und wählen Sie unsere Benutzer aus dem Team aus:

Code: Select all

$roles = Role::get();
$users = User::whereRoleIs($roles->pluck('name')->toArray(), $team)->get()
< /code>
Dies führt zu Folgendes: < /p>
{
"message": "ok",
"data": [
{
"id": 1,
"name": "niki",
"email": "niki@user.com",
"email_verified_at": null,
"created_at": "2021-07-12T11:29:09.000000Z",
"updated_at": "2021-07-12T11:29:09.000000Z",
"roles": [
{
"id": 3,
"name": "user",
"display_name": "User",
"description": "User",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 1,
"role_id": 3,
"user_type": "App\\Models\\User"
}
},
{
"id": 4,
"name": "leader",
"display_name": "Leader",
"description": "Leader",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 1,
"role_id": 4,
"user_type": "App\\Models\\User"
}
}
]
},
{
"id": 2,
"name": "konna",
"email": "konna@user.com",
"email_verified_at": null,
"created_at": "2021-07-12T11:29:09.000000Z",
"updated_at": "2021-07-12T11:29:09.000000Z",
"roles": [
{
"id": 3,
"name": "user",
"display_name": "User",
"description": "User",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 2,
"role_id": 3,
"user_type": "App\\Models\\User"
}
},
{
"id": 3,
"name": "user",
"display_name": "User",
"description": "User",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 2,
"role_id": 3,
"user_type": "App\\Models\\User"
}
}
]
}
]
}
Dies gibt alle Rollen zurück, die diese beiden Benutzer haben (beide gehören zum selben Team)
Wie kann es können Wir wählen nur < /strong> die Rolle, die der Benutzer im Team hat? Abfrage und dann die Rolle des Benutzers von dort aus auswählen.
foreach ($users as $user){
$userArray[] = array_push($userArray, $user->name, $user->roles->first());
}
< /code>
Dies gibt jedoch die an den Benutzer verbunden Team, an dem er teilnimmt). < /p>
$user->roles->where($team->id)
< /code>
, aber dies gibt alle Rollen zurück, die dem Benutzer beigefügt sind, und nicht die spezifische Rolle, die der Benutzer im Team hat. < /p>
Jede Hilfe ist geschätzt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post