如何在以下连接语句中使用\\\\
|||˪--- 1) the final backslash
||˪---- 3) the backslash needed to escape 1) in a string literal
|˪----- 2) the backslash needed to escape 1) in a regex literal
˪------ 3) the backslash needed to escape 2) in a string literal
:
AS
正如已经提到的,问题是,User::join('role_user', 'id', '=', 'user_id')
->join('roles', 'role_id', '=', 'roles.id')
->where('roles.name', 'teacher')
->get('roles.name AS roleName') // <-- invalid AS usage just for demonstration
会覆盖 user.name
。如何修改上述查询,以便role.name
重命名为role.name
并保留在结果中?
答案 0 :(得分:0)
使用AS
声明中的select(...)
可以解决问题:
User::join('role_user', 'id', '=', 'user_id')
->join('roles', 'role_id', '=', 'roles.id')
->where('roles.name', 'teacher')
->select('*', 'roles.name AS roleName') // <--
->get()
如上所述,查询中的关键部分是select语句:
// select all of the columns while renaming 'roles.name' one
...->select('*', 'roles.name AS roleName')
答案 1 :(得分:0)
将其合并到select语句
中User::select('roles.name AS roleName')
->join('role_user', 'id', '=', 'user_id')
->join('roles', 'role_id', '=', 'roles.id')
->where('roles.name', 'teacher')
->get();