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 № 1Ich 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"