###質問
JSON形式でPOSTした場合に、リクエスト先のコントローラのinitialize()またはbeforeFilter()でPSOTデータを取得したいのですが、
initialize()やbeforeFilter()の時点では$this->resuest->dataがArray()となっており取得できません。
アクションでは取得できます。
試しに入力Formを作って普通にsubmitしてPOSTした場合はinitialize()やbeforeFilter()でも取得できました。
JSON形式の場合だけinitialize()やbeforeFilter()で取得できません。
JSON形式でもinitialize()やbeforeFilter()でPOSTデータを取得するにはどうすればよろしいでしょうか。
よろしくお願いいたします。
###環境
CentOS 7.3
nginx 1.12
PHP 7.1
CakePHP 3.4
###ソースコード
RequestController.php
1. public function index() { 2. $http = new Client(); 3. $response = $http->post( 4. 'http://hoge.com/recieve/index', 5. json_encode(['foo' => 'foo']), 6. ['type' => 'json'] 7. ); 8. }
RecieveController.php
1. public function initialize() { 2. parent::initialize(); 3. $this->loadComponent('RequestHandler'); 4. $this->data = $this->request->getData(); ・・・(1)この時点ではArray() 5. } 6. 7. function public function beforeFilter(Event $event) { 8. parent::beforeFilter($event); 9. $this->data = $this->request->getData(); ・・・(2)この時点ではArray() 10. } 11. 12. function public function index() { 13. $this->data = $this->request->getData(); ・・・(3)この時点ではArray('foo' => 'foo')で取得できる 14. }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/09 03:37