【发布时间】:2019-01-22 21:59:09
【问题描述】:
我有一个管理商店、用户和角色的应用程序。
每个用户都可以是所有者、主管、员工或管理员。
了解用户是否具有 admin、supervisor 或 employee 权限的方法是通过 role_user 表连接用户、商店和角色(admin 角色在 role_shop 的 shop_id 字段中设置 NULL 值> 表)。相反,所有者是通过 shops 表上的 user_id 字段获取的。
我想在我的用户模型上执行一个函数来获取用户拥有的所有角色。
以下查询有效,但我不知道如何在 Eloquent 的查询生成器上执行它
SELECT priority, role, shop
FROM (
(
SELECT 1.5 AS priority, "owner" AS role, shops.id AS shop
FROM shops
WHERE shops.user_id = 1
)
UNION
(
SELECT roles.id AS priority, roles.name AS role, role_shop.shop_id AS shop
FROM role_shop
JOIN roles ON (roles.id = role_shop.role_id)
WHERE role_shop.user_id = 1
)
) AS result
ORDER BY priority
感谢大家的帮助!
【问题讨论】:
标签: sql laravel eloquent union query-builder