1

私はルーターtest/viewを持っていて、のようないくつかのパラメーターを渡したいと思いtest/view/id/123ます。

これらのパラメーターを zf2 ルーターに追加する方法がわかりません。

'router' => array(
        'routes' => array(
            'test' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/test',
                    'defaults' => array(
                        '__NAMESPACE__' => 'test\Controller',
                        'controller'    => 'Index',
                        'action'        => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'view' => array(
                        'type' => 'Literal',
                        'options' => array(
                            'route' => '/view',
                            'defaults' => array(
                                'controller' => 'Index',
                                'action'     => 'view',
                            ),
                        ),
                    ),
                ),
            ),
        ),
),

子ルートとしてセットアップviewしましたが、これらのパラメーターをどこに追加するかわかりません。

私は試してみまし'route' => '/view/:id/:value'

'defaults' => array(
    'controller' => 'Index',
    'action'     => 'view',
    'id'         => 'value',
)

しかし、それらは機能していないようです

これがどのように機能するかを理解しようとしています。

何か案は?ありがとう

4

1 に答える 1

5
'router' => array(
    'routes' => array(
        'test-view' => array(
            'type'    => 'segment',
            'options' => array(
                'route'    => '/test/view/:testId[/]',
                'constraints' => array(
                    'testId'     => '[0-9]+',
                ),
                'defaults' => array(
                    'controller' => 'Test\Controller\Index',
                    'action' => 'view'
                ),
            ),
        ),

ControllerAction で、次を使用してパラメーター「testId」を取得できます。

$this->params('testId');

ところで: 上記のルートは、次のような URL を提供します: /test/view/123- 「id」パラメーターを取り除くことができると思いました。

このページの 1 種類へのリンクを作成する場合は$this->url('test-view', array('testId' => 123))、いずれかのビューで使用できます。

于 2012-11-13T00:25:23.557 に答える