Результат модели отношений - PullRequest
0 голосов
/ 31 декабря 2018

admin_roles и admin_permissions таблица представляет собой отношение «многие ко многим»

Идентификатор запроса от admin_permission, где admin_roles Идентификатор в 1,2

Использование реализации SQL:

SELECT
    DISTINCT`admin_role_permissions`.permission_id
FROM
    `admin_permissions`
INNER JOIN `admin_role_permissions` ON `admin_permissions`.`id` = 
    `admin_role_permissions`.`permission_id`
WHERE
   `admin_role_permissions`.`role_id` IN (1, 2)

Результат:

$ allow_ids = [1,3,4 ....];

Как использовать модель Laravelна вышеупомянутый эффект?

AdminRoleController.php

$role_ids = ['1','2'];
$permissions = AdminRole::with('relPermission')->whereIn('id', $role_ids)->get();

AdminRole.php

public function relPermission(){
    return $this->belongsToMany('App\Model\AdminPermission', 'admin_role_permissions', 'role_id', 'permission_id');
}

Но результат:

enter image description here

Как получить такой результат, как

$ allow_ids = [1,3,4 .....]

используйте модель Laravel или коллекцию Laravel

1 Ответ

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

Вы можете использовать метод срывания:

$permissions = AdminRole::with('relPermission')->whereIn('id', $role_ids)->pluck('rel_permission.id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...