Я хочу создать CSV-файл данных формы при отправке формы. Это будет сохранено в хранилище. Затем получите ссылку на этот CSV-файл. Который отправляется на электронную почту в качестве вложения, а затем пользователь загружает его по этой ссылке. Используя полный laravel стандарт.
Я сделал это так:
if($request->isMethod('post')){
extract($request->all());
$student=array(
'name'=>request('name'),
'roll_no'=>request('roll_no'),
'birth'=>date('Y-m-d',strtotime(request('birth'))),
'school_name'=>request('school_name')
);
$headers = array(
"Content-type" => "text/csv",
"Content-Disposition" => "attachment; filename=student-".$student['name'].".csv",
"Pragma" => "no-cache",
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
"Expires" => "0"
);
$columns = array('Name', 'Roll No', 'Birth Date', 'School Name');
$callback = function() use ($student, $columns){
$file = fopen('php://output', 'w');
fputcsv($file, $columns);
fputcsv($file, array($student['name'], $student['roll_no'], $student['birth'], $student['school_name']));
fclose($file);
}
return Response::stream($callback, 200, $headers);
}