加入两个模型来获取数据

时间:2016-07-15 11:52:19

标签: excel laravel laravel-5 laravel-5.1

我像这样查询我的模型

$projects = Project::where('status', '!=', 'Completed')->get();

这会给我这样的回复

#attributes: array:16 [▼
    "id" => "7"
    "user_id" => "32"
    "contactEmail" => "sdfsdf@dsfsdf.com"
    "deploymentDate" => "2016-07-29"
    "status" => "Starting"
    "deleted_at" => null
    "created_at" => "2016-07-12 14:12:32"
    "updated_at" => "2016-07-15 09:47:34"
]

然后我传递此模型以生成Excel文件

Excel::create('projects', function($excel) use($projects) {
    $excel->sheet('Sheet 1', function($sheet) use($projects) {
        $sheet->fromArray($projects);
    });
})->export('xls');

一切正常,生成Excel。我有一个问题是excel文件显示user_id为32.而不是显示user_id,我想显示userName,这是 我的用户表的一部分。

如何加入这两个表来获取名称而不是ID?所有关系都已正确设置。

由于

1 个答案:

答案 0 :(得分:2)

试试这个,

$projects = Project::select('product.*','users.name AS user_name')
            ->leftjoin('users','product.user_id','=','users.id')
            ->where('status', '!=', 'Completed')->get();

使用此代码,您可以user_name获得更多关系,请参阅this