2013-03-07 61 views
0

有不同的模塊,並且它們都會在操作中返回ViewModel。但不知何故,ViewModel在其中一個模塊中有點怪異。Zend Framework 2 ViewModel在某些模塊中返回一個空輸出

我在說;

$view = new ViewModel(array('data' => $someContent)); 
$view->setTemplate('a valid path to template'); 

return $view; 

並獲得空白頁面。

如果我把一個出口()語句在相關模板的最後像

<!DOCTYPE html> 
<html> 
    ... 
</html> 
<?php exit(); ?> 

因爲腳本結束有,但我失去了,否則的輸出,我可以得到預期的輸出。

如果我說* var_dump($ view)*,我可以看到$ view是一個實例Zend \ View \ Model \ ViewModel

沒有錯誤,只是一個空的輸出,甚至可以看到通知警告。因此,它不會拋出任何異常,錯誤,警告,通知等。

要再次提醒,它只發生在特定的模塊中,但該模塊與其他模塊沒有什麼不同。

我不是一個ZF大師,我正在處理別人的代碼,所以請給我一個出發點來找到問題。

在此先感謝。

編輯:我有一個額外的信息;

它工作,如果我使用JsonModel而不是ViewModel,並且您可能知道,JsonModel擴展了ViewModel。

+0

作爲退出()幫助,輸出緩衝想到。如果它發生在特定的模塊上,那麼該模塊可能會對輸出緩衝做些什麼? – hakre 2013-03-07 12:27:57

+0

你是對的,但我找不到任何與緩衝或任何影響ViewModel相關的東西。 – Tim 2013-03-07 12:29:44

+0

在php.ini中將警告和通知提升到最高級別,然後啓用錯誤日誌並通過跟蹤日誌查找警告/通知/錯誤。 – hakre 2013-03-07 12:36:30

回答

1

由於您尚未正確發佈您的控制器操作,因此這是我可以對您的問題進行的猜測。

在Zend框架2中有各種類型的控制器,您將從中擴展您的控制器在您的模塊中。

例如,如果您從AbstractActionController擴展您的控制器,您的視圖將被正確返回。

所以這裏的問題是你的其他模塊有控制器擴展AbstractActionController。這個沒有正確返回視圖的模塊可能不會擴展它。相反,它可能會擴展其他控制器,如restfulcontrollers

您還應該檢查module.php文件中的模塊,以檢查是否有任何策略,例如json策略應用於引導module.config.php中的該模塊。

例如。

return array(
    'view_manager' => array(
     'strategies' => array(
      'ViewJsonStrategy', 
     ), 
    ), 
) 

此外,您還檢查您的module.config.php文件是否有您的視圖管理器到您的模板正確的規範。

例如。

'view_manager' => array(
     'template_path_stack' => array(
      'album' => __DIR__ . '/../view', 
     ), 
    ), 

希望這會有所幫助。

+0

我知道我的帖子沒有太多的細節,但我不能提供任何,因爲該項目和準備虛擬的會消耗太多的時間,我實際上沒有。我很抱歉。 但你的文章真的幫了我,發現了問題。 首先,模塊沒有佈局定義。其次,該模塊的佈局文件是空的。我只是提出一個指令來打印內容,瞧。 我相信選擇你的信息作爲答案沒有任何壞處。 非常感謝。 – Tim 2013-03-09 02:56:26