postの処理をすると、ほぼ必ず別のページへの「リダイレクト」が関わってきます。
通常のリダイレクト(別ページにGetで移動するリダイレクト)と受け取った$_POSTをそのまま次のページに引き渡す「$_POSTを渡すリダイレクト」についてまとめます。
※以降では区別しやすくするため「通常のリダイレクト」、「$_POSTを渡すリダイレクト」と書きます。
以下リンクはPhalcon公式ページです。
https://docs.phalcon.io/4.0/en/response#redirections
通常のリダイレクトは以下のように書きます。
$this->response->redirect('users/index');
赤字部分はviewsフォルダを起点とした相対パスです。
このリダイレクトについては、使いどころと使い方についてご説明します。
新規ユーザー登録する際、以下①~③の処理を別々のアクションで処理したい。
アクション①:新規登録するユーザー情報の入力
アクション②:入力したユーザー情報を確認
アクション③:DBに追加する
①⇒②はViewのフォームで値を受け渡ししたらいいのですが、問題は②⇒③です。
この②⇒③で$_POSTをそのまま渡せたら便利なんです!
$_POSTを渡すリダイレクトは以下のように使います。
$this->response->redirect('users/addconfirm', true, 307);
※第2引数:外部のURIへのリダイレクトをするかどうか
※第3引数:HTTPヘッダのステータスコード。307固定でOK!
アクションの組み方次第で「$_POSTを渡すリダイレクト」は不要になる(むしろ使う方がマイナー?。。)のですが、きっと使いどころはあります。。!