たぶん私は何かが不足しているかもしれませんが、コントローラに渡すことができるように、Symfony2のルートにクエリ文字列パラメータを定義する方法がないようです。例えばSymfony2:urlクエリーストリングパラメータをコントローラに渡すには?
、代わりに(Symfony2ののrouting documentationから)/blog/my-blog-post
ようなURIを生成し、次の経路にそれを渡す:
# app/config/routing.yml
blog_show:
pattern: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
Iは/blog?slug=my-blog-post
ようなURIを生成することを好むだろう。問題は、ルート設定ファイル(上記の{slug}のようなもの)の中でslug
パラメータを定義する場所を見つけることができないことです。
おそらくこれは目的に合っていますが、クエリ文字列のGETパラメータを使用するベストプラクティスは何ですか?
ドキュメントには、Generating URLs with Query Stringsに記載されているので、コントローラにそれらを渡す方法はありますか?私はそれらの言及を見つけることができます
はSymfony2 and HTTP Fundamentals次のとおりです。
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
// retrieve GET variables
$request->query->get('foo');
これは、コントローラ内部でそれらを操作するためのベストプラクティスですか?
Symfony 2.4以降、 'getRequest()'メソッドはnoですコントローラメソッドの 'Request'パラメータで2番目のトリックを使うべきです。 symfony 3では 'getRequest()'メソッドが削除されます。 – Brewal
@Brewal: 'Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller'を拡張し、すでにそのルートに定義されているパラメータを取得している'あなたは依然としてリクエストをこのように取得できますか、または単に 'Request :: createFromGlobals()'を使用するだけですか? – fritzmg
'$ request'変数の直前に指定された' Request'タイプのおかげで依然としてリクエストを得ることができます。 Symfonyはそれを推測するのに十分スマートです。 – Brewal