首页 > 解决方案 > Laravel 5.6 通过活动记录选择

问题描述

用户表

离开ID | 用户角色

5 | 1

4,2 | 2

5,2 | 2

1,5 | 1

我想用 user_role=1 和 leave_id=5 和 leave_id=1 获取所有用户

如何使用活动记录(或常规查询)实现?

我的代码是

$user_depart = array(5,1);
$user_role   = 1;

$data = DB::table('tbl_users')
            ->where('user_role', $user_role)
            ->whereIn('department_id',$user_depart)
            ->get();

标签: phplaravelmysqlipdolaravel-5.6

解决方案


您创建了一个错误的数据库结构。最好的方法 - 创建表 users_departs (user_id, leave_id)

然后你可以这样做:

$userDeparts = [5,1];
$userRole = 1;
$users = User::with('users.departs')
    ->where('users.role_id', $userRole)
    ->whereIn('departs.id', $userDeparts)
    ->get();

推荐阅读