Pages

2018年5月20日日曜日

Cakephp3 でPOST値をGET値で上書き

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

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

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

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

$params = $this->getRequest()->getQueryParams();
$request = $this->getRequest()->withParsedBody($params);
$this->setRequest($request);


2018/11/06 追記

https://book.cakephp.org/3.0/ja/core-libraries/form.html
このページに「値はリクエストメソッドが GET の時にのみ定義されるべきで、 さもないと正しくないまたは保存されていない直前の POST データを上書きしてしまいます。」
と記載があるので、

  $this->request->withData('name', 'John Doe');
  
を利用するのが良いのかもしれません。。
今は get*** と修正されていっているので、

  $this->getRequest()->withData('name', 'John Doe');

かな。

0 件のコメント:

コメントを投稿

Followers