2012-09-16 51 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 ...