在Laravel Query中使用别名

时间:2016-08-20 12:06:48

标签: join eloquent laravel-5.2

我在模型上有一个功能:

public function getAll()
    {
        $allusers = DB::table('users')->join('countries', 'countries.id', '=', 'users.country_id')->get();
        return $allusers;
    }

除非用户的ID替换为国家/地区的ID,否则此工作正常:

array(2) { [0]=> object(stdClass)#201 (20) { ["id"]=> int(42) ["name"]=> string(11) "Jim Elliott" ... and so on

由于country_id为42,因此ID应为1。

我应该为国家/地区ID添加别名吗?或者我可以将countries表的字段限制为国家和国旗吗?

2 个答案:

答案 0 :(得分:0)

$users = DB::table('users')->join('countries', 'countries.id', '=', 'users.country_id')
    ->select(DB::raw(
      "SELECT users.*,countries.*, users.id AS 'user_id',
      countries.id AS 'country_id'"
    );

答案 1 :(得分:0)

最后我欺骗了一个视图,其中我链接了2个表并给出了国家ID的别名。不是一个优雅的解决方案,但它已经奏效我确信有一种正确的方法可以在没有视图的情况下在Laravel中完成,所以我的功能变成了:

$allusers = DB::table('v_users')->get();
return $allusers;