Фильтрация данных сводной таблицы с использованием промежуточных отношений в Laravel eloquent - PullRequest
0 голосов
/ 31 декабря 2018

Я работаю над уровнем контроля доступа (ACL) в laravel.здесь две таблицы pivot одна role_user, которая представляет each users roles, а другая permission_role, которая представляет each roles permissions.Теперь я хочу получить данные permission_role сводной таблицы из User модели.

моих примеров кода.

In User Model

public function roles()
{
    return $this->belongsToMany(Role::class);
}

In Role Model

public function users()
{
    return $this->belongsToMany(User::class);
}

public function permissions()
{
    return $this->belongsToMany(Permission::class);
}
In Permission Model

public function roles()
{
    return $this->belongsToMany(Role::class);
}

Я пытаюсь так: -

$user->roles->with('permissions')->get();

это показывает BadMethodException.

Как я могу решить эту проблему и получить желаемую продукцию.

1 Ответ

0 голосов
/ 31 декабря 2018

Если вы хотите загрузить вложенные отношения, вы можете сделать это, используя синтаксис, разделенный точками, например:

User::with('roles.permissions')->find($id);

Если модель User уже создана, то вы можете использовать метод load()вместо этого (отложенная загрузка):

$user->load('roles.permissions');

Документация по загрузке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...