2016-04-02 7 views
1

Ich bin ein absoluter Anfänger von Laravel.Wie bekomme ich einen Wert für eine Pivot-Tabelle?

Ich möchte "role_id" auf dem Pivot-Tisch oder "admin" bekommen, aber ich weiß nicht wie. Ich möchte ein System erstellen, das eine andere Schnittstelle basierend auf der Rolle des Benutzers zeigt. So würde ich Benutzer von admin, instructor und user unterscheiden, indem ich "role_id" auf dem Pivot-Tisch bekommen.

Jeder Rat würde geschätzt werden.

users.php

public function users(){ 
    return $this->belongsToMany('App\User'); 
} 

Roles.php

public function roles(){ 
    return $this->belongsToMany('App\Role')->withTimestamps(); 
} 

Rollentisch:

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 möchteerhaltenauf der Pivot-Tabelle. ich die folgende Tabelle mit dem Code erhalten können "\ Auth :: User() -> Rollen"

{ 
"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" 
    } 

} 
+0

Vielen Dank für Ihren Kommentar tun, aber es funktioniert immer noch nicht. – ILoveBaymax

+0

Ok, lass es mich überprüfen und melde mich kurz –

Antwort

1

ich meine Rollen Setup ausgesehen haben, müssen Sie in Roles.php nach dem Code folgenden Code hinzugefügt

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, um Rollen hinzuzufügen und zu löschen.

Zum Testen Sie so etwas wie

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

Ich habe ein paar Änderungen in Ihrem Code und alles funktioniert wie erhofft. Vielen Dank, Maytham! – ILoveBaymax

+0

Sie sind in der Tat willkommen und haben meine Stimme –

Verwandte Themen