Cách đơn giản nhất để tạo báo cáo trong khuôn khổ Codeigniter là gì? Có thư viện nào để thực hiện tác vụ này không? Ngoại trừ việc lập biểu đồ các nguồn lực khác để làm điều này là gì.Báo cáo trong Codeigniter
14
A
Trả lời
41
Tìm thấy một giải pháp tốt đẹp cho bản thân mình. Nếu bạn muốn tạo báo cáo ở định dạng csv, nó rất dễ dàng với người viết mã. chức năng Mô hình của bạn
function index(){
return $query = $this->db->get('my_table');
/*
Here you should note i am returning
the query object instead of
$query->result() or $query->result_array()
*/
}
Bây giờ trong điều khiển
function get_report(){
$this->load->model('my_model');
$this->load->dbutil();
$this->load->helper('file');
/* get the object */
$report = $this->my_model->index();
/* pass it to db utility function */
$new_report = $this->dbutil->csv_from_result($report);
/* Now use it to write file. write_file helper function will do it */
write_file('csv_file.csv',$new_report);
/* Done */
}
Không externals được yêu cầu tất cả mọi thứ có sẵn trong codeigntier. Chúc mừng! Nếu bạn muốn viết tập tin xml nó cũng dễ dàng.
Chỉ cần sử dụng xml_from_result()
phương pháp dbutil và sử dụng write_file('xml_file.xml,$new_report)
Truy cập các liên kết này mà chúng sẽ trợ giúp.
Và
0
Toàn bộ lời giải thích:
mẫu:
class Csv_m extends MY_Model {
function getCSV() {
$sql = "SELECT * FROM tablename";
return $this->db->query($sql);
}
}
Bộ điều khiển:
class Generate extends CI_Controller {
var $file_path;
public function __construct() {
parent::__construct();
$this->file_path = realpath(APPPATH . '../assets/csv');
}
function index() {
$this->load->model('csv_m');
$this->load->dbutil();
$this->load->helper('file');
//get the object
$report = $this->csv_m->getCSV();
$delimiter = ",";
$newline = "\r\n";
$new_report = $this->dbutil->csv_from_result($report, $delimiter, $newline);
// write file
write_file($this->file_path . '/csv_file.csv', $new_report);
//force download from server
$this->load->helper('download');
$data = file_get_contents($this->file_path . '/csv_file.csv');
$name = 'name-'.date('d-m-Y').'.csv';
force_download($name, $data);
}
}
0
Tôi đã sử dụng tính năng này cho báo cáo .csv của mình. nó có khả năng thay đổi tên trường cơ sở dữ liệu trong tệp csv. đây là mã.
public function export_csv() {
$file_name = 'File_name_'.date("Y-m-d h-i-s").'.csv';
$query = $this->db->query('SELECT
id as "Id", // id is table id and Id is the csv header field.
franchiseopt as "Nearest Location",
hear_about_us as "How did you hear about us?",
specify as "Specify",
email as "Email",
noguests as "Number of Guests",
eventdate as "Date of Event",
name as "Your Name",
phone as "Phone Number",
locationevent as "Location of Event",
message as "More Details"
FROM TABLE_NAME ORDER BY id DESC');
$this->load->dbutil();
$data = $this->dbutil->csv_from_result($query);
$this->load->helper('download');
force_download($file_name, $data);
exit();
}
Rõ ràng bạn cần phải thay thế các trường bảng cơ sở dữ liệu theo bảng của bạn.
Theo kinh nghiệm của tôi, tôi không tìm thấy bất kỳ điều gì. Tôi có thể biết chính xác loại báo cáo bạn đang tìm kiếm không? – LoganPHP
tôi muốn tạo báo cáo từ truy vấn. Nên có bất kỳ định dạng csv, pdf hoặc else –