Я сейчас использую Laravel 5.6
, я хочу создать контроль доступа пользователя.Я использую три таблицы: user (id, username, email, password)
, role (id, role, desc)
и сводную таблицу role_user (user_id, role_id)
.Мой код, как показано ниже:
Модель пользователя
public function roles() {
return $this->belongsToMany(Role::class);
}
Ролевая модель:
/**
* Role Model
*/
public function users() {
return $this->belongsToMany(User::class);
}
API Ресурс:
/**
* Api Resource
*/
public function toArray($request)
{
return [
'id' => $this->id,
'username' => $this->username,
'email' => $this->email,
'role' => $this->whenPivotLoaded('role_user', function (){
return $this->roles->name;
})
];
}
Проблема в том, что когда я хочу получить доступ к информации о роли из сводной таблицы, эта роль исчезает, и я получаю пустую информацию о роли, например:
{
"data": {
"id": 1,
"username": "john",
"email": "john.doe@mail.com",
}
}
Может ли кто-нибудь помочь мне решить эту проблему??
Спасибо ~