juniorzavaleta / mysql-csv
更轻松地导出 csv 文件
v1.0
2017-06-11 21:42 UTC
Requires
- php: >=5.6.4
This package is not auto-updated.
Last update: 2024-09-29 02:34:09 UTC
README
从 mysql 创建 csv 文件
安装
composer require
MySQL 配置
将 csv 文件夹添加到 /etc/apparmor.d/usr.sbin.mysqld 文件
/usr/sbin/mysqld {
[...]
# Allow data files dir access
/var/lib/mysql-files/ r,
/var/lib/mysql-files/** rwk,
/path/to/project/csv/ r,
/path/to/project/csv/* rwk,
[...]
}
然后运行
sudo /etc/init.d/apparmor reload
可能存在 secure-file-priv 的问题,请在 mysql 配置中更改
[mysqld]
secure-file-priv = ""
sudo service mysql restart
示例
在 Laravel 或具有相同行为的 env() 函数的框架中
构造函数的第二个参数是 mysql 的凭证,请检查源代码
$generator = new CsvGenerator('complaints'); $generator->setTitles( 'Id', 'Tipo contaminacion', 'Distrito', 'Estado', 'Fecha de registro' ); $generator->setColumns( 'complaints.id', 'contamination_types.description', 'districts.name', 'complaint_states.description', 'complaints.created_at' ); $generator->setFilename(storage_path('app/csv/casos_'.date('d_m_Y_H_i_s').'.csv')); $generator->join('contamination_types', 'complaints.type_contamination_id', 'contamination_types.id') ->join('districts', 'complaints.district_id', 'districts.id') ->join('complaint_states', 'complaints.complaint_state_id', 'complaint_states.id'); if (!$user->is_admin) { $generator->where('complaints.district_id', session('district_id')) ->whereNot('complaint_state_id', Complaint::INCOMPLETED); } $generator->whereIf('complaint_states.description', request('estado')) ->whereIf('districts.name', request('distrito')) ->whereIf('contamination_types.description', request('tipo_contaminacion')) ->orderBy('complaints.id', 'DESC'); $filename = $generator->execute(); return response()->download($filename)->deleteFileAfterSend(true);
导出!