Som absolútny začiatočník Laravelu.
Chcel by som sa dostať "role_id"
na kontingenčnom stole alebo "admin"
, ale neviem ako. Chcel by som vytvoriť systém, ktorý zobrazuje odlišné rozhranie podľa toho, akú rolu má používateľ. Chcel by som teda odlíšiť používateľov od admin
, instructor
, a user
získaním "role_id"
na kontingenčnom stole.
Akákoľvek rada by bola ocenená.
Users.php
public function users(){
return $this->belongsToMany("AppUser");
}
Roles.php
public function roles(){
return $this->belongsToMany("AppRole")->withTimestamps();
}
Tabuľka úloh:
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
Chcel by som sa dostať role_id
na kontingenčnom stole. Nasledujúcu tabuľku môžem získať s kódom „Auth :: User () -> role“
{
"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"
}
}
odpovede:
1 pre odpoveď č. 1Pozrel som sa na moje nastavenie rolí, za svoj kód v musíte pridať nasledujúci kód 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
kontroluje roly, assignRole
a removeRole
na pridanie a odstránenie rolí.
Na testovanie môžete urobiť niečo ako
if ($user->hasRole("student")) return "you are in student group"