0

Symfony2 TWIG で、次のようなパスを生成しようとすると:

<a href="{{ path('folder_new', { 'folder': folder.id }) }}">

思った通りのルートにならない

これが私が期待したものです:

http://localhost/site/web/app_dev.php/Media/folder/new/2

ここに私が実際に path() コマンドから得たものがあります

http://localhost/site/web/app_dev.php/Media/folder/new?folder=2

ルートではなく、標準のクエリ文字列 (get) 変数としてフォーマットされるのはなぜですか?

4

1 に答える 1

2

その理由は、変数の名前が間違っているからです。

folder_new:
    pattern:  /new/{parent}
    defaults: { _controller: "AcmeBundle:Folder:new", parent : NULL }

私のルーティングでは、変数parentではなく変数を呼び出しましたfolder

正しいpath()ものは次のようになっているはずです:

<a href="{{ path('folder_new', { 'parent': folder.id }) }}">

そのため、Symfony2 が関数に渡された変数に一致するルート パラメーターを見つけられない場合、エラー メッセージを生成する代わりに、標準のクエリ文字列( ) 形式で変数を追加することを学びました。path()$__GET

エラーメッセージがあればもっと早く見つけられたでしょうが、そのままにしておいたほうがいいと思います。

乾杯!=)

于 2012-10-06T14:12:25.343 に答える