Laravel表加入

时间:2016-05-04 15:45:19

标签: php mysql laravel-5.2

我有三张桌子。

用户

id name

角色

id name

ROLE_USER

id user_id role_id

我想像

一样加入他们
id name name(role) user_id role_id

我的愿景是展示用户的角色名称。

我试过这个:

DB::table('users')
            ->join('role_user', 'users.id', '=', 'role_user.user_id')
            ->join('roles', 'role_user.role_id', '=', 'roles.id')
            ->select('users.id', 'role_user.role_id', 'roles.name')
            ->get();

你能告诉我我做错了什么,或者我是不是想走错路。

先谢谢

1 个答案:

答案 0 :(得分:0)

名称字段为" double"。这不是您的数据库的问题,但它不会很好地显示。请尝试以下代码:

$result = DB::table('..etc.')->get(['users.*','role_user.role_id','roles.name as role_name']);
foreach($result as $row) {
    print_r($row->toArray());
}

正如您所看到的,我已更改了get()调用,以确保用户名称"名称"字段不会与角色的名称发生冲突"名称"字段。