zf2でページ要求に関連するさまざまなパラメータを取得するにはどうすればよいですか?投稿/取得パラメータ、アクセスされているルート、送信されたヘッダ、アップロードされたファイルなど。Zend Framework 2でroute、post、getなどのパラメータにアクセスする方法
答えて
これを行う最も簡単な方法は、beta5で導入されたParams pluginを使用することです。さまざまな種類のパラメータに簡単にアクセスできるユーティリティメソッドがあります。いつものように、the testsを読むことは、何かが使われるはずのことを理解する価値があることを証明することができます。
は、コントローラ内の指定されたパラメータの値を取得するには、単一の値を取得し、あなたが探しているパラメータのタイプに適した方法を選択し、名前を渡す必要があります。
例:
$this->params()->fromPost('paramname'); // From POST
$this->params()->fromQuery('paramname'); // From GET
$this->params()->fromRoute('paramname'); // From RouteMatch
$this->params()->fromHeader('paramname'); // From header
$this->params()->fromFiles('paramname'); // From file being uploaded
デフォルト値
これらの方法の全てはまた、与えられた名前を持つパラメータが見つからない場合に返されるデフォルト値をサポートしています。
例:
$orderBy = $this->params()->fromQuery('orderby', 'name');
http://example.com/?orderby=birthdateを訪問し、 $ ORDERBYが値生年月日になります。
http://example.com/を訪問し、 $ ORDERBYはデフォルト値名を持っています。
は一種類のすべてのパラメータを取得するには、すべてのパラメータ
を取得し、ちょうど何も渡していないとし、paramsプラグインは、キーとして自分の名前と値の配列を返します。
例:
$allGetValues = $this->params()->fromQuery(); // empty method call
array(
'orderby' => 'birthdate',
'filter' => 'hasphone',
);
のような配列した場合のparamsプラグイン
を使用していないだろうhttp://example.com/?orderby=birthdate&filter=hasphone$ allGetValuesを訪問Paramsプラグインのsource codeをチェックすると、より一貫性のあるパラメーター取得を可能にするために、他のコントローラーを囲む単なるラッパーであることがわかります。なんらかの理由で直接アクセスする必要がある場合は、ソースコード内でどのように処理されているかを見ることができます。
例:
$this->getRequest()->getRequest('name', 'default');
$this->getEvent()->getRouteMatch()->getParam('name', 'default');
注:あなたはスーパーグローバル$ _GET、$ _POSTなどを使用することもできましたが、それは推奨されません。
たとえば、投稿されたjson文字列を取得する最も簡単な方法は、 'php:// input'の内容を読み込んでデコードすることです。たとえば、私は、単純なZendのルートだった:
'save-json' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => '/save-json/',
'defaults' => array(
'controller' => 'CDB\Controller\Index',
'action' => 'save-json',
),
),
),
をし、私は角の$ http.postを使用してそれにデータをポストしたかったです。投稿はうまくいったが、Zendの検索方法は
$this->params()->fromPost('paramname');
はこの場合何も得られなかった。 「:// PHP」:
$content = file_get_contents('php://input');
print_r(json_decode($content));
私は最後に私のJSON配列を得たので、私の解決策は、$ _POSTから読み取るために、上記の他の方法のようなメソッドのすべての種類を試した後、でした。 これが役立つことを願っています。
生のPOSTボディが必要な場合は、リクエストオブジェクトのgetContent()を使用してください。コントローラから、次のようにすることができます: '$ content = $ this-> getRequest() - > getContent()' –
ZF2では '?name = mike'の形式でURLパラメータを取得する方法はありますか? – Stephane
require_once 'lib/Zend/Loader/StandardAutoloader.php';
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
$loader->registerNamespace('Http\PhpEnvironment', 'lib/Zend/Http');
// Register with spl_autoload:
$loader->register();
$a = new Zend\Http\PhpEnvironment\Request();
print_r($a->getQuery()->get()); exit;
- 1. Zend Framework 2 Tree Route Stack Error
- 2. チェーンと特急ルータ(.route)及び(に.get、.post ...など)をミックスする方法
- 3. Zend Framework 2のローカル設定でアクセスする方法
- 4. postパラメータが渡されていませんzend framework 2
- 5. Zend Framework 2でACLをロードする簡単な方法は?
- 6. Zend Framework 2:Zend \ Translator \ Adapter \ GettextをZend \ View \ Helper \ Translatorに注入する方法
- 7. .htaccess経由でページにGET/POSTパラメータを送信する方法
- 8. zend framework 2コンソールアプリケーションからデータベースにアクセスできない
- 9. Zend Frameworkの2、
- 10. Androidアプリケーションでウェブコンテンツ(POST/GET)にアクセスする方法は?
- 11. Zend Framework 2:コントローラからモジュールのコンフィグレーション値にアクセスするには
- 12. Zend Framework 2(zf2)のビューからApplication Configにアクセスするには?
- 13. Zend framework 2 - パブリックディレクトリはどこですか?
- 14. GETパラメータにアクセスできない
- 15. エクスプレスアプリでAngular 2 routeにアクセス
- 16. Zend Framework 2で生のSQLクエリを実行する方法
- 17. Zend Framework 2のメモリにアプリケーションコンフィグをキャッシュする方法は?
- 18. Zend Framework 2のホームページ(デフォルトページ)にリダイレクトする方法は?
- 19. Zend Framework 2リダイレクト
- 20. Zend Framework 2オートローディング
- 21. Zend Framework 2パートルートアセンブリ
- 22. Zend Framework 2 LDAP
- 23. zend framework 2 AuthenticationService
- 24. Zend Framework 2 - filters
- 25. Zend Frameworkの2ナビゲーションサブサブメニュー
- 26. Zend Frameworkの2 - URL
- 27. Zend Framework 2のキャッシング
- 28. Zend Framework 2のMultiSelect
- 29. PHPでのテストサービス(Zend Framework 2)
- 30. Zend Framework 2ツールをコンポーザーでインストールする方法
これは完全な質問です。驚くばかり。 – kta