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');

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.phpcreateBlock('adminhtml/web_web_grid')

于 2012-10-30T12:43:18.243 に答える
0

正しいブロックを呼び出していることを確認してください (ブロックは Mage_Adminhtml_Block_Widget_Grid によって拡張する必要があります。または、グリッドのようなものである可能性があります)。その後、コードを使用してください。

次のコードを実行してテストすることができます(そのマジェントコアコード)........

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