0


2

私はZend Frameworkを使ってREST APIを構築しています。 私がモデル化したすべてのリソースにマップされているルート設定があります。 また、さまざまな種類のリクエスト(PUT、GETなど)を正しいコントローラアクションに送信するためのRESTfulコントローラプラグインも作成しました。

私はjQueryを使ってajax呼び出しを行っています。デフォルトでは、ajax呼び出しのURLにGETパラメーターを追加しています。 私は自分のリソースのフィルタとしてこれらのパラメータを渡したいです。

Zend Frameworkからこれらのパラメータをコントローラに渡す方法を教えてください。 これを機能させるためにコントローラプラグインを書く必要がないことを願っています…​ *

作業URL

http://myapp.com/catalog/products/categories/max_results/20/start_index/5

欲しいもの

http://myapp.com/catalog/products/categories/?max_results=20

Zend Frameworkのルート

routes.catalog_product_categories.type = "Zend_Controller_Router_Route" routes.catalog_product_categories.route = "catalog / products / categories / *" routes.catalog_product_categories.defaults.controller = "categories" routes.catalog_product_categories.defaults.action = "productcateg_categories.defaults.action =" productcateg_categories.defaults.action = "productcateg_categories" defaults.RESTful = true

3 Answer


0


Ajax呼び出しを変更して、パラメーターをスクリプトに送信させることができます。

$ .get( "/ catalog /"、{max_results: "20"、start_index: "5"}); $ .post( "/ catalog /"、{max_results: "20"、start_index: "5"});


0


あなたはそのパラメータにアクセスすることができます:

$ params = $ this-> getRequest() - > getRequestUri();

あなたのコントローラーの行動に。 そして、そのパラメータにアクセスするのに便利なように、次のものを使うことができます。

$ array = parse_url($ params、PHP_URL_QUERY);

これを機能させるためにカスタムルートは必要ないと思います。 これがお役に立てば幸いです。


0


Lighttpdの書き換え規則をこれに変更することでそれが修正されます。

url.rewrite-once =( "。* \?(。*)$" => "/index.php?$1"、 "。* \。(js | ico | gif | jpg | png | css)$" = > "$ 0"、 "" => "/index.php")