CSV不能在Magento中导出

时间:2012-10-30 12:39:20

标签: magento csv

我在WebController.php中设置了以下代码

/**
* 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 个答案:

答案 0 :(得分:2)

这一行:

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

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

  

致命错误:在非对象

上调用成员函数getCsvFile()

你确定'adminhtml / web_web_grid'与一个块有关吗?

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

例如,如果你没有重载Mage_Adminhtml模块,你应该在文件夹Mage_Adminhtml_Block_Web_Web_Grid中有一个名为app/code/local/Mage/Adminhtml/Block/Web/Web/Grid.php的类,这是createBlock('adminhtml/web_web_grid')正在搜索的内容

答案 1 :(得分:0)

请确保您正在调用右侧块(块必须通过Mage_Adminhtml_Block_Widget_Grid扩展或者它可能是网格状) 然后使用你的代码

您可以通过执行操作(其magento核心代码)来跟踪代码进行测试..........

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