前回はブラウザから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画面のテキストフィールドへ適当に値を入力し、送信ボタンを押して下さい。
テキストフィールドに入力した内容が画面に表示されるはずです。
最後に
特にありません。