Dcat Admin内置了导出功能,非常简单,一句代码就可以开启列表导出功能:

$grid->export();

但是如果表格中存在关联数据,那么导出的时候,显示的是空白,解决办法如下:

$titles = ['id' => 'ID', 'name' => '名称', 'email' => '邮箱', 'role_name' => '角色'];

$grid->export()->titles($titles)->rows(function ($rows) {
    foreach ($rows as $index => &$row) {
        // 这里假设role就是关联数据
        $row['role_name'] = $row['role']['name'];
    }
    return $rows;
});

先设置列标题,然后在循环里根据实际需要设置特定标题的数据即可。