/ / So erhalten Sie einen Wert für eine Pivot-Tabelle - laravel, laravel-5

So erhalten Sie einen Wert für eine Pivot-Tabelle - laravel, laravel-5

Ich bin ein absoluter Anfänger von Laravel.

Ich hätte gern "role_id" auf dem Pivot-Tisch oder "admin", aber ich weiß nicht wie. Ich möchte ein System erstellen, das eine andere Benutzeroberfläche basierend auf der Rolle des Benutzers zeigt. Daher möchte ich Benutzer von unterscheiden admin, instructor, und user indem man ... bekommt "role_id" auf dem Pivot-Tisch.

Jeder Rat würde geschätzt werden.

Users.php

public function users(){
return $this->belongsToMany("AppUser");
}

Roles.php

public function roles(){
return $this->belongsToMany("AppRole")->withTimestamps();
}

Rollentabelle:

1|admin|2016-04-02 16:51:25|2016-04-02 16:51:25
2|instructor|2016-04-02 16:51:25|2016-04-02 16:51:25
3|student|2016-04-02 16:51:25|2016-04-02 16:51:25

Ich hätte gern role_id auf dem Pivot-Tisch. Ich kann die folgende Tabelle mit dem Code "Auth :: User () -> role" abrufen.

{
"id": "1",
"name": "admin",
"created_at": "2016-04-02 16:51:25",
"updated_at": "2016-04-02 16:51:25",

"pivot": {
"user_id": "1",
"role_id": "1",
"created_at": "2016-04-02 16:54:06",
"updated_at": "2016-04-02 16:54:06"
}

}

Antworten:

1 für die Antwort № 1

Ich habe mir die Einrichtung meiner Rollen angesehen. Nach dem Einfügen Ihres Codes müssen Sie folgenden Code hinzufügen Roles.php

public function hasRole($name)
{
foreach ($this->roles as $role)
{
if ($role->name == $name) return true;
}
return false;
}

public function assignRole($role)
{
return $this->roles()->attach($role);
}

public function removeRole($role)
{
return $this->roles()->detach($role);
}

hasRole überprüft die Rollen, assignRole und removeRole Rollen hinzufügen und löschen.

Zum Testen kann man sowas machen

if ($user->hasRole("student")) return "you are in student group"