0

Zend Framework 2 Router オブジェクトに問題があります。Zend\Paginator成功せずにクイックスタート ルーティング メカニズムの例に実装しようとしています。説明させてください:

クイックスタートに従った後、次のように終了しました。

'album' => array(
    'type'    => 'Segment',
    'options' => array(
        'route' => '/album[/:action][/:id]',
        'constraints' => array(
            'action' => '[a-z][a-z0-9\-]*',
            'id' => '[0-9]+'
        ),
        'defaults' => array(
            'controller' => 'Album',
            'action' => 'index'
        )
    )
)

ブラウズ/インデックスページにページネーターを実装しようとしたときに問題が発生しました。ルーターがvar を に割り当てるため、そのようなルーターが必要だとしてもうまくいき/album[/:action][/:id][/:page]ません。追加/編集アクションで呼び出しのようなもので終わるセクションを削除しました:page:id:id/album[/:action][/:page]

$matches = $this->getEvent()->getRouteMatch();
$id = $matches->getParam('page');

問題なく動作していますが、私は物事が記憶に残るのが好きです。私の質問は次のとおりです。ページネーターが私のように見えるようにするためだけに、複製ルーターを作成せずにこれを達成することは可能ですか? 私は何か間違ったことをしていますか?

4

1 に答える 1

1

ルートの例として、十分に一意ではありません。

/album[/:action][/:id][/:page]

id と page はオプションで、どちらも整数にすることができます

このルートを一致させようとすると:

/アルバム/インデックス/99

99 は、ページが存在しない id と一致するか、id が存在しないページと一致する可能性があります。どれがどれであるかを知る方法がないため、これは機能しません。

次のような識別子を追加できます。

/album[/:action][/id/:id][/:page]

したがって、そこにリテラルがあり、それが ID であることを確認できます。

/album/index/id/99 # :id = 99

または /album/index/99 # :page = 99

于 2013-03-08T22:55:13.750 に答える