2013-08-19 77 views
1

我正在使用Yii Framework(http://www.yiiframework.com)及其用於生成Excel文件的YiiReport擴展的網頁中工作。我已經使用這個擴展幾個星期,它完美的作品。然而,我已經上傳了一些文件到網絡的在線版本,現在在線版本,當試圖使用YiiReport,不起作用(但是,本地版本完美)。我想我沒有改變直接與YiiReport擴展相關的任何內容,所以我不能解釋爲什麼它不起作用。與擴展的代碼是非常簡單的:YiiReport崩潰沒有解釋

$r = new YiiReport(array('template'=> $template)); 

$r->load(array(
    array(
     'id' => 'ong', 
     'data' => array(
      'name' => $nom 
     ) 
    ), 
    array(
     'id'=>$id, 
     'repeat'=>true, 
     'data'=>$data, 
     'minRows'=>2 
    ) 
) 
); 

echo $r->render('excel5', $filename); 

該網頁崩潰彷彿PHP文件,其中的代碼是找不到或無法訪問。這個問題與最後一行代碼有關:如果這一行被註釋掉,頁面不會崩潰(當然它不會生成Excel文件,但至少不會崩潰);如果通過echo打印一個簡單的字符串,字符串會顯示在屏幕上......問題似乎來自「$ r-> render()」函數,但我不明白爲什麼。我認爲擴展名位置正確,因爲頁面在訪問上一個擴展功能時不會崩潰,但我找不到可能發生的事情,並且我已經在這裏工作了幾天...

有什麼想法可以發生什麼?

在此先感謝您的時間和精力! :)

回答

1

我猜你的在線版本的PHP沒有你的開發服務器那麼多的內存。我看到了Excel生成器的奇怪錯誤,它們通常看起來與內存限制有關。

+0

嗯有道理...我怎麼檢查這是否真的是問題?我怎麼能解決它?感謝您的回答! :) – Johanovski

+0

@Johanovski我會開始看到如果導出較少的數據修復您的問題。如果是這樣,那麼這是一個很好的指示它的記憶相關。您一次輸出多少關係和/或一次輸出多少行? – acorncom

+0

我已經嘗試導出一行,甚至沒有連接到數據庫,但問題仍然存在,所以我認爲它與內存問題無關......同一文件在本地主機上完美工作,但在上傳到在線Web時崩潰。 Firefox抱怨它無法找到該文件;但是,如果在最後一行評論中運行同一個文件時,該文件將按預期方式訪問並顯示(儘管當然不會生成Excel)...... Chrome甚至沒有說過一件事!我真的不知道這個......任何想法?謝謝! – Johanovski