私はエクスポートに取り組んでいます.2つのボタンを使用したいのは、1つのレコードをエクスポートするだけです。もう1つは、チェックボックスで選択された複数のレコードをエクスポートすることです。私はIDの輸出方法を取得することができますが、データベースからデータを抽出し、csvファイルに配置する方法を知らない。1をエクスポートし、複数を.csv(laravel 5.3)としてエクスポート
私の方法は(これは単一レコードのエクスポートで動作します)です。この方法
<a href="/student/getExport/{{ $stuent->id }}">Export It</a>
ルート
Route::get('/student/getExport/{id}', '[email protected]');
ため
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;
}
リンクはこちらティルそれは1つのレコードのエクスポートのためでした。
複数のレコードをエクスポートする場合、エクスポートするために必要なIDを取得するJavaScript関数が用意されています。私はgetExport方法で選択したレコードの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";
}
}
});
}
。
ヒントこのコードは、単一レコードと複数レコードの両方の削除に対して機能しますが、エクスポートにもこのレコードを使用する方法はわかりません。
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
に複数のレコードの輸出をachiveする方法を、私を助けてください。あなたはget
methordを使用する必要が
おかげ
コントローラでIDをカンマ区切りにしていますか? –
どうすればテストできますか? 私はインデックスファイル上でそれをテストします。@Raunak Gupta –
'getExport'メソッドで' dd($ id); 'を使用してください。 –