【发布时间】:2021-03-20 17:13:23
【问题描述】:
我一直在使用 CodeIgniter 3.1.8 和 Twig 开发博客应用程序。
该应用程序有一个时事通讯订阅系统。我使用了一个名为 newsletter 的表,它有 3 列:id、email 和 subscription_date。
在 Subscribers 类控制器中,我创建了一个 export() 方法,打算将订阅者导出为 CSV 文件:
public function export(){
$data = $this->Static_model->get_static_data();
$subscribers = $this->Newsletter_model->fetchSubscribers();
$file_name = 'subscribers_'.date('Ymd').'.csv';
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Type: application/csv;");
// CSV creation
$file = fopen('php://output', 'w');
$header = array("Email", "Subscription Date");
fputcsv($file, $header);
foreach ($subscribers as $key => $value) {
fputcsv($file, $value);
}
fclose($file);
redirect('dashboard/subscribers');
}
在 Newsletter_model 模型中:
public function fetchSubscribers() {
$this->db->select('email, subscription_date');
$this->db->order_by('newsletter.id', 'DESC');
$query = $this->db->get('newsletter');
return $query->result();
}
导出表格:
<?php echo form_open(base_url('dashboard/subscribers/export'), ['class' => 'ml-auto']); ?>
<button type="submit" class="btn btn-sm btn-success"><i class="fa fa-file mr-1"></i> Export CSV</button>
<?php echo form_close(); ?>
问题
由于我无法弄清楚的原因,只导出了表头,而不是值(电子邮件和日期)。
我做错了什么?
【问题讨论】:
标签: php mysql codeigniter codeigniter-3