2012-09-16 77 views
3

我已經按照爲新的ZF2教程創建的相冊示例。對於第一個模塊,這一切都很好,我能夠修改以顯示我想要用於我的應用程序的數據。ZF2,添加多個表格

我的問題是增加第二個模塊,更復雜的是,它管理2+表數據。每次進入頁面,我都會看到Apache錯誤頁面,這不是很有幫助。我唯一修改的主類是Module.php int第二個模塊的目錄。也許有人會看到我的猜測是錯誤的。

模塊背景:該視圖將顯示4種類型的表,其中包括Fosters和Volunteers。我爲每個人創建了一個模型和表格。所有似乎都很好,除非我修改了工廠設置以包含每個表格(FosterTable和VolTable)。你認爲這是我的錯誤可能嗎?

我工作形式此頁:http://framework.zend.com/manual/2.0/en/user-guide/database-and-models.html

對於/TeamMgr/Module.php,我增加了以下內容:

namespace TeamMgr; 

use TeamMgr\Model\FosterTable; 
use TeamMgr\Model\VolTable; 

class Module 
{ 
public function getServiceConfig() 
    { 
     return array(
      'factories' => array(
       'TeamMgr\Model\VolTable' => function($sm) { 
        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); 
        $table  = new VolTable($dbAdapter); 
        return $table; 
       }, 

       'TeamMgr\Model\FosterTable' => function($sm) { 
        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); 
        $table  = new FosterTable($dbAdapter); 
        return $table; 
       }, 
      ), 
     ); 
    } 

    public function getConfig() 
    { 
     return include __DIR__ . '/config/module.config.php'; 
    } 
} 

然後在我的控制器,我補充說:

public function indexAction(){ 
    return new ViewModel(array(
      'fosters'=>$this->getFosterTable()->fetchAll(), 
    )); 
    return new ViewModel(array(
      'vols'=>$this->getVolTable()->fetchAll(), 
    ));  

} 

等客如何完全我是嗎?

回答

4

您不能多次撥打return。正在發生的事情是該函數的執行被第一個return調用終止,而第二個不會被調用。你需要寫:

return new ViewModel(array(
     'fosters'=>$this->getFosterTable()->fetchAll(), 
     'vols'=>$this->getVolTable()->fetchAll(), 
)); 

這是基本的PHP。所以我建議先學習PHP,然後再學習ZF。 ZF對於使用普通香草PHP的人來說是非常複雜的。有更好的初學者框架(如代碼點火器,kohana或cakephp) - 你應該開始在那裏IMO ...