【问题标题】:How to rename attributes in Eloquent?如何在 Eloquent 中重命名属性?
【发布时间】:2017-02-13 11:37:27
【问题描述】:
           Select distinct
          `users`.`name` as user_name,
          `practices`.`name` as practice_name,
          `userlevels`.`name` as userlevel_name,
          `usertypes`.`name` as usertypes_name,              
          `users`.`active` as user_status,
          `users`.`email` as user_email              
           from `network_user`
           left join `users` on `network_user`.`user_id` = `users`.`id`
           left join `practice_user` on `users`.`id`=`practice_user`.`user_id`
           left join `practices` on `practice_user`.`practice_id`=`practices`.`id`
           left join `userlevels` on `users`.`level`=`userlevels`.`id`
           left join `usertypes` on `users`.`usertype_id`=`usertypes`.`id`
           where `network_user`.`network_id`= 9
           ;

这是我的 sql 原始查询,我是 eloquent 的新手,面临的问题谁能告诉我如何重命名 eloquent 中的属性。提前致谢。

【问题讨论】:

  • 如果您想要完整的查询,它可能有点宽泛,但请查看here 了解如何为列设置别名。

标签: mysql sql laravel-5 eloquent laravel-5.2


【解决方案1】:

请试试这个:

$users = DB::table('network_user')
 ->leftJoin('users', 'users.id', '=', 'network_user.user_id')
 ->leftJoin('practice_user', 'practice_user.user_id', '=' ,'users.id')
 ->leftJoin('practices', 'practices.id', '=', 'practice_user`.`practice_id')
 ->leftJoin('userlevels', 'userlevels.id', '=', 'users.level')
 ->leftJoin('usertypes', 'usertypes.id', '=', 'users.usertype_id')
 ->where('network_user.network_id', 9)
 ->get(['users.name as user_name', 
      'practices.name as practice_name',
      'userlevels.name as userlevel_name',
      'usertypes.name as usertypes_name',              
      'users.active as user_status',
      'users.email as user_email']);

尚未测试,但应该可以工作。

【讨论】:

  • 是的,它起作用了,唯一的问题是 get 中缺少“”,你救了我的一天@Parth
  • 哦,是的..好地方..对不起。很高兴我能帮助你。 :)
【解决方案2】:

我的理解是您想在 eloquent 查询中使用列别名,即使之前的答案是正确的,它也适合查询构建器的方法,如果您使用的是 eloquent 模型,您可以按照以下方式进行,

$users = User::select(['id','username','first_name AS UserFirstName',DB::raw('CONCAT(user.first_name, " ", user.last_name) AS user_full_name'),'user.username'])->get();

请注意,您也可以使用 eloquent 查询生成器的所有可用功能...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2011-11-10
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多