3

新しい ZF2 チュートリアル用に作成されたアルバムの例に従いました。最初のモジュールでは、すべてうまく機能し、アプリケーションで使用したいデータを表示するように変更できました。

私の問題は、2 つ目のモジュールを追加することです。さらに複雑なことに、2 つ以上のデータ テーブルを管理します。このページにアクセスするたびに Apache エラー ページが表示されますが、これはあまり役に立ちません。私が変更した唯一の主要なクラスは、2 番目のモジュールのディレクトリ内の Module.php でした。誰かが私の推測がどれほど間違っていたかを理解できるかもしれません。

モジュールの背景: ビューには、フォスターとボランティアを含む 4 種類のテーブルが表示されます。それぞれのモデルとテーブルを作成しました。各テーブル (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

1 に答える 1

4

何度も電話をかけることはできませんreturn。起こっていることは、関数の実行が最初のreturn呼び出しで終了し、2 番目の呼び出しが呼び出されないことです。あなたは書く必要があります:

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

基本的なPHPです。したがって、ZF を学ぶ前に、まず PHP を学ぶことをお勧めします。ZF は、ごく普通の PHP に慣れている人にとっても非常に複雑です。初心者向けのより良いフレームワークがあります (code igniter、kohana、cakephp など) - そこから始めるべきです IMO...

于 2012-09-16T22:13:58.493 に答える