使用查询生成器在加入请求上复制实体

时间:2013-11-20 22:10:37

标签: join laravel-4 query-builder

我正在使用Laravel的查询构建器,语法如下:

$article = DB::table('users')->join('articles', 'articles.id', '=', 'users.id')->where('article_id', $id)->first();

您可以看到文章和用户表都有id列。 然后在我看来我使用查询结果,我只得到一个id而我需要两个。

有没有办法让他们?

我知道我可以使用:

->select('articles.id as myFirstId', 'users.id as mySecondId', 'users.name', ...)

但是这个请求中有很多列,如果我可以避免它,我宁愿。

由于 RaphaëlN。

1 个答案:

答案 0 :(得分:1)

您可以从表中选择包含* FROM table更多字段的所有字段,然后从另一个表中逐个选择,如下所示:

$article = DB::table('users')
            ->join('articles', 'articles.id', '=', 'users.id')
            ->where('article_id', $id)
            ->select('articles.*', 'users.id as userId', 'users.name') // Add rest of `users` fields
            ->first();