1
我正在处理导出,我想使用2个按钮之一是仅导出一条记录,另一条是导出多个由复选框选择的记录。我能够在导出方法中获取id,但不知道如何从数据库提取数据并将其放入csv文件中。导出1和导出多个为.csv(laravel 5.3)
这里是我的方法(这是工作单记录导出)。
public function getExport($id, Request $request)
{
$student = Students::find($id);
$name = $student->name . ".csv";
$temp = tmpfile();
$heading = array('Name', 'Group');
fputcsv($temp, $heading,);
$values = array($student->name, $student->group);
fputcsv($temp, $values,);
fseek($temp, 0);
echo fread($temp, 1024);
header('Content-Type: text/csv; charset=utf-8');
header("Content-Disposition: attachment; filename=" . $name);
fclose($temp);
die;
}
链接,这种方法
<a href="/student/getExport/{{ $stuent->id }}">Export It</a>
路线
Route::get('/student/getExport/{id}', '[email protected]');
到这里它是一个创纪录的出口。
现在用于多记录导出我有一个JavaScript函数,它获取需要导出的ID。
链接倍数记录导出
<a href="javascript:;" onclick="exportAll();"> Export Students </a>
的JavaScript方法
function exportAll() {
var students = $('input:checkbox:checked').map(function() {
return this.value;
}).get();
$.ajax({
type: "GET",
url: '/student/getExport/' + students,
data: {
ids: students
},
success: function (result) {
if (result == 'export') {
window.location.href = "/smtp";
}
}
});
}
通过这种方法我越来越选定记录的ID在getExport方法。
提示此代码适用于单个和多个记录删除,但不知道如何将其用于导出。
public function destroy($id, Request $request)
{
if (empty($request->input('ids')))
{
$student = Students::findOrFail($id);
$student->delete();
}
else
{
$ids = $request->input('ids');
$Student = Students::whereIn('id', $ids);
$student->delete();
session()->flash('msg', trans('Deleted successfully.'));
}
return 'delete';
}
请帮助我如何才达到出口多个记录中相同的方法getExport
。
感谢
你在控制器中获取逗号分隔的ID吗? –
我如何测试它? 我测试它在索引文件中的警报那里我已经用逗号@Raunak Gupta –
在'getExport'方法中使用'dd($ id);'' –