Tôi đang cố gắng xuất bảng cơ sở dữ liệu dưới dạng tệp .csv có thể tải xuống từ trình duyệt. Mã của tôi là khung công tác dựa trên zend và tôi hầu như ở đó với hành động sau:xuất csv trong khung công tác zend
public function exportTableAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$fileName = $this->_getParam('fileName');
$tableName = $this->_getParam('tableName');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$fileName.'"');
echo $this->getCsv($tableName, $fileName);
}
Tôi có thể tải xuống tệp .csv chứa dữ liệu hợp lệ. Tuy nhiên, ngay cả khi tôi tắt bố cục và trình kết xuất đồ họa, tôi vẫn nhận được đầu ra của tiêu đề, thanh bên và chân trang của trang của tôi ở cuối tệp .csv của tôi. Có cách nào để vô hiệu hóa bất kỳ đầu ra html khác với một trong những tạo ra trong exportTableAction của tôi? Hoặc tôi có thể gửi thông tin tiêu đề và chuỗi csv đến trình duyệt theo cách khác không?
BTW: Tôi đang sử dụng plugin hành động ngăn xếp để giúp tôi làm cho tiêu đề và thanh bên như sau:
...
$actionStack = $front->getPlugin('Zend_Controller_Plugin_ActionStack');
$actionStack->pushStack($userlogAction);
$actionStack->pushStack($rightcolAction);
Chúc mừng, Adrian
Bạn đang sử dụng plugin ActionStack cho tiêu đề của bạn, sidebar, và footer? –
Vâng, thực sự. Tôi có dòng sau trong bootstrap.php: $ frontController-> registerPlugin (new Project_Controller_Plugin_ActionSetup()); Tôi có thể tắt tính năng này trong exportTableAction của mình không? – aimfeld
hey - bất kỳ cơ hội nào bạn có thể đăng việc triển khai getCsv của bạn ($ tableName, $ fileName); phương pháp? – emeraldjava