我在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
请帮忙! 在此先感谢。
答案 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);