1

我在 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

请帮忙!提前致谢。

4

2 回答 2

2

这一行:

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

返回空值。该错误清楚地告诉您:

致命错误:在非对象上调用成员函数 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')正在搜索的内容

于 2012-10-30T12:43:18.243 回答
0

Please make sure that you calling right block(Block must be extended by Mage_Adminhtml_Block_Widget_Grid or it might be grid like) then use your code

You might test by following code by putting in action (its magento core code)..........

$fileName   = 'customer.csv';
$content    = $this->getLayout()->createBlock('adminhtml/customer_grid')->getCsvFile();
$this->_prepareDownloadResponse($fileName, $content);
于 2012-10-30T12:55:44.680 回答