
Pharallel 次画面を表示するには?
次画面は GET で表示するようにします。
①まずは普通にリンク(GET)で次画面を表示できます。
②次にフォームの内容をサブミットするときですが、
入力した内容は POST でコントローラークラスに送られ、コントローラークラスのハンドラで処理した後に GET で次画面に遷移させるようにします。
これはハンドラで処理の最後に return foward を行うことでできます。
この良い点は、F5 のリロードによる2重投稿が発生しなくなるところです。

まずは普通にリンク(GET)で次画面を表示する方法です。
Laravel 標準の書き方
<a href="{{ route('form') }}">フォーム画面へ</a>
urlディレクティブを使っても同じ結果が得られます。
<a href="@url('form')">フォーム画面へ</a>
次に、ハンドラで次画面に遷移させる方法です。
実際ハンドラで使っているところを見てもらった方が速いです。↓が OKボタン が押される時に呼び出される on_okハンドラ です。
最後の行に「return $this->init_forward(‘conf’)」と書かれています。これは「次画面は conf画面で、必ず initメソッド を呼び出しなさい。」という表記になります。
public function on_ok( $request )
{
// 何かの処理
$this->check_params($request,[
'text' => 'required',
'chk' => ['required',null,'チェックボックス'],
'multi-select' => ['required','マルチチェックボックスがエラーです。'],
],
['required' => ':attribute は必須です']);
$request['val2'] = 'history test';
// 次画面の表示
return $this->init_forward('conf');
}
forward
次画面を表示します。
以前に次画面を処理したことがあるなら、initメソッド は通りません。
return $this->forward('{次画面}',['param1'=>'値1','param2'=>'値2',...]);
パラメーターが必要なければ、次画面名を文字列で渡すだけで forward します。
return '{次画面}';
init_forward
次画面を表示します。必ず initメソッド を通ります。
return $this->init_forward('{次画面}',['param1'=>'値1','param2'=>'値2',...]);
back
前の画面に戻る処理。
return $this->back('{前画面}',['param1'=>'値1','param2'=>'値2',...]);
reload
元の画面を表示します。
return $this->reload();
ハンドラで return が無い場合は reload されます。
error
エラー画面を表示します。
return $this->error({エラーメッセージ});
以上