Request POST リクエストパラメーター受け取り Laravel5.8

前回はブラウザからGETメソッドでクエリーパラメータを受け取り、受け取った値を画面に表示しました。

今回はPOSTメソッドで指定されたパラメータを受け取ります。

なお、前回は以下を参考にして下さい。

前提

ファイル構成

今回使用するファイルの構成は以下の通りです。

ファイル名説明
routes/web.phpルーティング
app/Http/Controllers/FormController.phpコントローラー
resources/views/form/input.blade.phpビュー(input)
resources/views/form/output.blade.phpビュー(output)

ルーティング

ルーティングは以下の通りです。

Route::get('/accept', 'FormController@accept');

ビュー(input)

ビュー

以下のようなpostメソッドでリクエストを送信する簡単なフォームを作成します。

<html>
    <head></head>
    <body>
        <main>
          <form action="{{ url('/accept')}}" method="POST" class="form-horizontal">
            {{ csrf_field() }}
            <input type="text" name="value">
            <button type="submit" name="send">送信</button>
        </form>
        </main>
    </body>
</html>

クロスサイトリクエストフォージェリ(CSFR)

Laravelは、クロスサイトリクエストフォージェリ(CSFR)に対応しています。
クロスサイトリクエストフォージェリ(CSFR)についてはここでは説明しません。

ビュー(output)

コントローラーから渡された変数を画面に表示します。

<h1>変数の値は??</h1>
{{$val}}

コントローラー

前回同様、Requestクラスのinputメソッドを使用して、リクエストパラメータを取得しています。
input画面のテキストフィールドのname属性に”value”を指定している為、inputメソッドの第一引数を “value” とすることで、テキストフィールドの値を取得できます。

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class FormController extends Controller
{

    public function accept(Request $request) {
      $value = $request->input('value');
      return view('form/output')->with('val', $value);
    }

}

確認

Input画面のテキストフィールドへ適当に値を入力し、送信ボタンを押して下さい。
テキストフィールドに入力した内容が画面に表示されるはずです。

最後に

特にありません。

© DeNnie.Lab All Rights Reserved.