Pages

2018年5月20日日曜日

Cakephp3 でPOST値をGET値で上書き

POST値を更新するなんて場面そう無いだろうけど、一応メモ。

以前は
  1. $this->request->data = $this->request->params;  

みたいな書き方でいけてたはずだけど、今はNGみたい。

マニュアルにも無いし、そんな場面作るなよって意味だろうけど以下ならできた。

  1. $params = $this->getRequest()->getQueryParams();  
  2. $request = $this->getRequest()->withParsedBody($params);  
  3. $this->setRequest($request);  
  1. 2018/11/06 追記  
  1. https://book.cakephp.org/3.0/ja/core-libraries/form.html  
  2. このページに「値はリクエストメソッドが GET の時にのみ定義されるべきで、 さもないと正しくないまたは保存されていない直前の POST データを上書きしてしまいます。」  
  3. と記載があるので、  
  4.   
  5.   $this->request->withData('name''John Doe');  
  6.     
  7. を利用するのが良いのかもしれません。。  
  8. 今は get*** と修正されていっているので、  
  9.   
  10.   $this->getRequest()->withData('name''John Doe');  
  11.   
  12. かな。  

0 件のコメント:

コメントを投稿

Followers