0

現在、プロジェクトでAltoRouterを使用していますが、さまざまなオプションのパラメーターをランダムな順序で一致させることができるルートが必要です。AltoRouterクラスを書き直して、XMLを使用し、次のようなパラメーターを再利用する機能を追加しました。

<parameter name="page" match="[i:page]"/>

<route match="/blog" ...>
    <use param="page"/>
</route>

/blogこれはとの両方に一致し/blog/2ます。

今、私は、または、またはちょうどの/blog/[i:page]/[desc|asc:order]/[new|popular:sort] ようなURIに一致することができるようなルートが必要です。/blog/2/new/blog/desc/2/blog/2 , /blog/new

そのようなURIに対して単一のルートを定義することは可能ですか(Symfonyのような異なるルーターを使用している場合でも)?いいえの場合、そのようなURIに一致するように複数のルールをどのように設定する必要がありますか?

4

1 に答える 1

2

解決策が見つかりました:すべてのオプションのパラメーターをコントローラーのアクションに渡す必要があります。このようなルートは、次のようにAltoRouterで定義できます/blog/[**:params]。このルートは、/blog/および残りのURLと$paramsとして一致します。たとえば、URLは/ blog / 2 / desc / newであり、コントローラーのアクションは$paramsとして「2/ desc / new」を取得します。これらはexplode('/'、$ params)で解析し、必要に応じて処理できます。

于 2013-04-07T16:36:30.593 に答える