2012-10-30 32 views
1

导出我已经设置了下面的代码中WebController.phpCSV不要在Magento

/** 
* Export order grid to CSV format 
*/ 
public function exportCsvAction() 
{ 
    $fileName = sprintf('stores-%s.csv', date('Ymd')); 
    $grid = $this->getLayout()->createBlock('adminhtml/web_web_grid'); 
    $this->_prepareDownloadResponse($fileName, $grid->getCsvFile()); 
} 

我不知道那是什么造成CSV不被导出的问题。

以下错误显示 -

Fatal error: Call to a member function getCsvFile() on a non-object in 
/var/www/projects/tmp/storelocator/app/code/local/Company/Web/controllers/Adminhtml/WebController.php 
on line 0 

请帮帮忙! 在此先感谢。

回答

2

这条线:

$grid = $this->getLayout()->createBlock('adminhtml/web_web_grid'); 

返回null。这个错误清楚地告诉你吧:

Fatal error: Call to a member function getCsvFile() on a non-object

你确定这个“adminhtml/web_web_grid”涉及块?

您在adminhtml模块的Block文件夹中是否有文件夹/文件Web/Web/Grid.php

举例来说,如果你没有超载Mage_Adminhtml模块,你应该有一个,这就是该createBlock('adminhtml/web_web_grid')正在寻找

0

请确保您调用正确的块中的文件夹app/code/local/Mage/Adminhtml/Block/Web/Web/Grid.php在名为Mage_Adminhtml_Block_Web_Web_Grid类(块必须由Mage_Adminhtml_Block_Widget_Grid或延长它可能会像格) 然后用你的代码

你可能会投入行动(其Magento的核心代码)测试通过下面的代码..........

$fileName = 'customer.csv'; 
$content = $this->getLayout()->createBlock('adminhtml/customer_grid')->getCsvFile(); 
$this->_prepareDownloadResponse($fileName, $content);