Laravel:如何通过多个表来订购?

时间:2016-06-13 07:32:27

标签: laravel laravel-5.2

我有桌子

users
    id
    username

role
    id
    name

users_role
    user_id
    role_id

我有用户列表,我希望能够按用户名和role_id排序,我该怎么做?

users
1:first
2:second
3:third

roles
1:admin
2:customer

users_role
1:1
1:2
2:2
3:2

排序可以是第一个用户role_id(或者对于max role_id - >;如果用户有角色1和2排序为2)

1 个答案:

答案 0 :(得分:0)

首先,您需要为两个模型创建关系:用户和角色(我想我们有三个表:用户角色 role_user

\App\User::with(array('roles' => function($query) {
                            $query->orderBy('role_id', 'DESC');
                        }))
                        ->orderBy('username', 'ASC')
                        ->get();

接下来,使用此查询,您可以拥有用户和角色列表,按用户名ASC和role_id DESC排序

$data