0

ZF2でいくつかの基本的なルーティングを実行しようとしていますが、いくつかの問題が発生しています。

私に問題を与えているセクションはこれです:

'parent-categories' => array(
    'type' => 'literal',
    'options' => array(
        'route' => '/kategorier/',
        'defaults' => array(
            'controller' => 'categories',
            'action' => 'parent-categories',
        ),
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'child-categories' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '/kategorier[/:slug][/:parentCategoryid]/',
                'constraints' => array(
                    'parentCategoryid' => '[0-9]+',
                ),
                'defaults' => array(
                    'controller' => 'categories',
                    'action' => 'child-categories',
                )
            ),
        ),
    ),
),

元の「親カテゴリ」ルートは問題なく正常に機能します。ただし、問題は、子カテゴリルートが何も実行していないことです。私はURLを持っています:

/ kategorier / test-test-test-test-test / 1 /

しかし、これは何にも一致しません。エラーが発生します:

要求されたURLはルーティングによって一致しませんでした。

「child_routes」セクションから子カテゴリルートを取得すると、URLが/ kategorier /のみの場合でも、常にリクエストをキャッチします。誰かが私がここで間違っていることを見ることができますか?

4

1 に答える 1

5

子ルートが親ルートに追加されます。つまり、あなたが現在一致しているのは

/kategorier//kategorier[/:slug][/:parentCategoryid]/

このようにしてください

'parent-categories' => array(
    'type' => 'literal',
    'options' => array(
        'route' => '/kategorier',
        'defaults' => array(
            'controller' => 'categories',
            'action' => 'parent-categories',
        ),
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'child-categories' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '[/:slug][/:parentCategoryid]',
                'constraints' => array(
                    'parentCategoryid' => '[0-9]+',
                ),
                'defaults' => array(
                    'controller' => 'categories',
                    'action' => 'child-categories',
                )
            ),
        ),
    ),
),

そして、私はこれがうまくいくはずだと思います。読みやすくするために、常に新しいルートを1つから始めたいと思うので、末尾にスラッシュを付けないことをお勧めします;)

于 2012-11-12T21:42:09.723 に答える