2017-08-14 7 views
1

私はSymfonyルータで何かをしようとしていますが、私が目指しているものを達成することはできません。symfonyルータのオプションテキスト

実際、このパスには、特に/page-{page}のテキストを追加したいと考えています。それは以下のもののように、同じルータパス用の二つの可能性を持つことが可能かどうだから私は聞いてるのよ:

  • /トピック/ {ID}
  • /トピック/ {ID}/PAGE- {ページ}

のrouting.yml:読書のための

utm_forum_forum: 
    path:  /forum/{id}/page-{page} 
    defaults: 
     _controller: UTMForumBundle:Forum:forum 
     page: 1 
    requirements: 
     id: \d+ 
     page: \d+ 

おかげで、私は十分に明確ではないんだ場合、私は再度説明することができます:)

答えて

1

を必要とするものをあなたはすべての可能な構成のためのルートを含める必要がある場合

は知ってはいけません。

ページスラグがオプションであるのであれば、あなたのルートテーブルは次のようになります。ページのスラグが完全に省略されたときに1ページのデフォルト値を提供し、またはで何かを要求すべきである

utm_forum_forum_default: 
    path:  /forum/{id} 
    defaults: 
     _controller: UTMForumBundle:Forum:forum 
     page: 1 
    requirements: 
     id: \d+ 

utm_forum_forum: 
    path:  /forum/{id}/page-{page} 
    defaults: 
     _controller: UTMForumBundle:Forum:forum 
    requirements: 
     id: \d+ 
     page: \d+ 

をIDの後にpage-Nと入力します。

+0

本当に助けてくれてありがとう、私はこの解決策を考えていましたが、私は実際に生存率を見ていませんでした。 –

0
utm_forum_forum: 
    path:  /forum/{id}/page-{page} 
    defaults: { _controller: UTMForumBundle:Forum:forum, page: null } 

したがって、/ forum/15/page-をリクエストすると、{page}パラメータでnullが返されます。そのあなたが

+0

ありがとうございます。 私はすでにページパラメータのデフォルト値を定義していますが、問題はありません。ページ番号なしのクリーンリンクを取得するには、 'page-'オプションを使用します。 –

+0

次に、2つのルーティングを作成することができます.1つは 'page-'であり、もう1つは同じコントローラーを指し、デフォルトの 'page'値をURLの 'page-'なしでnullに設定します。 –

+0

それは私がやったことです。ありがとうございました ! –

関連する問題