私の質問は非常に単純ですが、とにかく質問します。誰かが私にヒントを与えることを願っています。Symfony2の基本的なURLルーティングの問題
私はSymfony2を使ってPHP Webアプリケーションを書き直しています。私の必要性は、私はこのURLを呼び出すために使用される私の古いウェブアプリでは、データベース・オブジェクト上でCRUD操作を実行することです(主キーと他の二つのフィールドを持っている、field1
とfield2
と呼ばれる)
:
http://myhost/updateProduct.php?id=foo&field1=value1&field2=value2
updateProduct.php
スクリプトを呼び出してid = fooのオブジェクトを更新し、field1に値1を設定し、field2に値2を設定します。
今、私はその仕事をするためにSymfony2コントローラを使いたいと思っています...私はどのルーティングを設定すべきなのでしょうか?私のコントローラはProductController
であり、updateAction($id,$field1,$field2)
メソッドを埋め込んでいます。
私は(YML構文)のようなものを試してみました:
myBundle_update:
pattern: /product/update/{id}/field1={value1}&field2={value2}
defaults: { _controller: TestMyBundle:Product:update }
が、それは働いていません。
私の質問は次のとおりです。私はルーティング構文を誤解しています(正しい場合は正しい)か?または、リクエストパラメータをコントローラに適切に分割する方法について、私が見逃していることがありますか?あなたはおそらく、あなたのルートはこのような何かを見てみたい、事前
あなたが言及したパターンは有効です。私はそれを使用することを考えていました。しかし、フィールド名を指定できる「ユーザーフレンドリーな」URLを使用したかったのです。 Symfony2ルーティングで&と=文字をエスケープする方法はありませんか? VALUE1を: – csparpa
あなたはこの 要件のようなパターンに要件を追加するために何かを試みることができる「[^&] +」 だから、それは(最初& – kufi
&および=パーセントをエンコードすることができます見つけたときに検索を停止します%26と%3D)、経路は壊れませんが、Symfony2ルータはそれらをマッチさせません(文字通り%26と%3Dを一致させようとするので)。 – Adrian