Cakephp PHP WEB開発

【Cakephp2→4】サーバーリクエストに任意の値をセットしておきたい場合

※本サイトはPR表記を含みます。

あらかじめにサーバーリクエストに値をセットしておきたいケースもあるかと思います。

以下、Cake2の場合とCake4の場合、それぞれのサーバーリクエストに値をセットする方法です。

Cake2: リクエストに値をセット

// アクションメソッド内にて
$this->request->data = $this->Model->getFuga($id);

Cake2ではリクエストデータを変数代入かのように扱えることが可能でした。

お手軽感はありますね。

Cake4: リクエストに値をセット

// アクションメソッド内にて
$this->setRequest($this->getRequest()->withData('keyName', $value));

Cake4 では withData() を利用し、引数にキーと値をセットして、それを setRequest() する形になります。

これで、ビュー側で例えば、GETリクエスト(画面遷移時)などに $this->getRequest()->getData() するとセットしたデータを取得することができます。

Cake4: 特定のカラムではなく、リクエストデータ自体をセットしたい場合

単一カラムではなく、すべてのリクエストデータを置き換える、またはセットしたい場合もあると思います。

そのような場合は、withParseBody() を利用すればOKです。

$this->setRequest($this->getRequest()->withParsedBody($data));

 

-Cakephp, PHP, WEB開発
-