1

私はすでにZF1で開発しましたが、現在はZF2で遊んでいます。チュートリアルに従うと、私はすでにアルバムアプリケーションを操作していますが、すべてが機能します。今、アルバムモジュールに新しいコントローラーを追加する方法を考えています。

TestControllerという名前の新しい空のコントローラーとそのビューを作成します。それをテストするために、新しいTestControllerをデフォルトとしてmodule.config.phpを変更しましたが、動作します。チュートリアルのように、デフォルトのアルバムコントローラーに再度変更した後。そして、まあ..問題は、追加ビューで、アルバムからこの行を変更したときに発生します

<a href="<?php echo $this->url('test', array('action'=>'index'));?>">Test</a>

ブラウザでwww.testing.loc/addを押しましたが、エラーなしでスクリプトの半分しかレンダリングされません。

Albumモジュールのmodule.configの一部は次のようになります。

<?php
return array(
    'controllers' => array(
        'invokables' => array(
            'Album\Controller\Album' => 'Album\Controller\AlbumController',
            'Album\Controller\Test' => 'Album\Controller\TestController',

        ),
    ),
    'router' => array(
        'routes' => array(
            'album' => array(
                'type'    => 'segment',
                'options' => array(
                    'route'    => '/',

                    'constraints' => array(
                        'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                        'id'     => '[0-9]+',
                    ),
                    'defaults' => array(
                        'controller' => 'Album\Controller\Album',
                        'action'     => 'index',
                    ),
                ),
            ),
        ),
    ),    
    'view_manager' => array(
        'template_path_stack' => array(
            'album' => __DIR__ . '/../view',
        ),
    ),
);

おそらくurl関数のビューで提供されたパラメーターの単なる間違いですが、私は他の人と証明しました、そしてそれは同じでした。ZF2から始めていますが、同じモジュールで複数のコントローラーを使用する方法がわかりません。どんなアドバイスでも大歓迎です。

4

1 に答える 1

4

構成内に名前が付けられたルートはありませんtest。構文は次のとおりです。

$this->url('ROUTENAME', $routeParams);

基本的にあなたがする必要があるのはルートを変えることです:

'router' => array(
    'routes' => array(
        'test' => array(
            //copy the other parts
        )
    )
)

詳細については、Zend \ Mvc \Router-Documentationを参照してください。

于 2013-01-26T15:05:01.090 に答える