2

私は現在、Symfony 1.4.18 で URL のセグメント区切りとしてダッシュを使用しようとしていますが、それを機能させるにはいくつかの問題があります。

これが私のルートです:

franchise:
    url:          /number-:page-:slug
    param:        { module: store, action: franchise, page: 1 }
    options:      { suffix: .html, segment_separators: [ /,- ] }
    requirements:
        page: \d+

ご覧のとおり、パターンは非常に単純です。定数の「数値」の後にダッシュと数値だけの変数 :page を定義しています。その後にダッシュとスラッグが続きます (スラッグには英数字の値とダッシュも含めることができます)。

URL はメソッド url_for によって正しく生成されますが、アクセスしようとすると、通常のエラーが発生します。

URL の解析後に空のモジュールおよび/またはアクション...

:page と :slug の間のダッシュをプラス記号に置き換えようとしました (そしてそれを segment_separators に追加しました) が、どちらも機能しませんでした。

もうどうしたらいいのかわからない?すでにこの種の問題を抱えている人はいますか?

4

2 に答える 2

1

私はそのケースをますますテストしました/

機能した "/test-:test" -> 1 つのセパレーターが機能しなかった "/test-:test-:test" 複数の機能した "/test/:test/:test" 複数の "/"

この情報が役立つことを願っています ありがとう..

于 2012-09-19T12:00:43.987 に答える
1

問題は、slugいくつかのダッシュがあるため、Symfony が と の間のセパレーターがどこにあるかを判断できないことpageですslug

に要件を追加してslug、スラッグにダッシュを含めることができることを Symfony に明示的に伝えると、機能します。

franchise:
  url:          /number-:page-:slug
  param:        { module: store, action: franchise, page: 1 }
  options:      { suffix: .html, segment_separators: [ /,- ] }
  requirements:
    page: \d+
    slug: "[a-zA-Z0-9\-]+"
于 2012-09-17T08:03:22.850 に答える