$users = User::select('users.id', 'users.username', 'users.active', 'users.parent_id', 'parent.username as parent_username')
->selectRaw('users.email as primary_email')
->selectRaw('user_profiles.secondary_email as secondary_email');
目前,我正在從 users 和 user_profiles 表中獲取所有用戶的主要電子郵件和輔助電子郵件作為兩個單獨的列,用于在前端顯示用戶串列。
如果用戶角色具有“管理員”,如何僅通過創建包含主電子郵件的單列電子郵件來改進此查詢,否則它包含除管理員以外的所有其他用戶的輔助電子郵件
我的表結構:角色表、用戶角色表、用戶表(使用 spatie laravel 權限)
uj5u.com熱心網友回復:
您需要根據您的要求修改以下查詢:
$users = User::select("*",
\DB::raw('(CASE
WHEN users.status = "0" THEN "User"
WHEN users.status = "1" THEN "Admin"
ELSE "SuperAdmin"
END) AS status_lable'))
->get();
dd($users);
這樣您就可以根據用戶角色回傳主要和次要電子郵件。
uj5u.com熱心網友回復:
我正在嘗試根據用戶角色(Eloquent)選擇一個電子郵件列
我的用戶模型有一個 role_id,并且有 1、2、3 三個角色。我有另一個名為 emails 的表,其中包含 emails.role_id、emails.email 列
現在我需要根據他們的 role_id 在我的用戶索引視圖中顯示電子郵件,例如,如果我以管理員身份登錄,我應該獲取所有用戶的電子郵件,或者如果我以父母身份登錄,我應該只獲取父用戶的電子郵件
uj5u.com熱心網友回復:
這是下面提供的查詢的修改版本
$users = User::select('users.id', 'users.username', 'users.active', 'users.parent_id', 'parent.username as parent_username')
->selectRaw("CASE WHEN GROUP_CONCAT(roles.name) = 'student' THEN user_profiles.secondary_email ELSE users.email END as email")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/445106.html
標籤:mysql 拉拉维尔 雄辩 laravel-8 雄辩的关系
下一篇:casts屬性無法更改日期格式
