0
           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
           ;

this is my sql raw query i am new to eloquent facing problem with can any one tell me how to rename attributes in eloquent.Thanks in advance.

  • If you want the full query it might be a bit broad, but have a look [here](http://stackoverflow.com/questions/26958080/how-to-alias-the-name-of-a-column-in-eloquent) to see how to alias a column. – Tim Biegeleisen Feb 13 '17 at 11:39

2 Answers2

2

Please try this:

$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']);

Haven't tested, but should work.

Parth Vora
  • 4,073
  • 7
  • 36
  • 59
0

What I understand is you want to use column allias in the eloquent query, even though previous answer is correct, its suitable for query builder approach, if you are using eloquent models, you can go in the following way,

$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();

Note that you can use all the function available for query builder with eloquent as well...

Mohamed Akram
  • 2,244
  • 15
  • 23