Pharallel 次画面を表示するには?

ショコラ
ショコラ

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({エラーメッセージ});

以上

Scroll to Top