2018/10/12

今回はフォーム画面で送ったデータをどのように処理をするのかについてエントリーします。
通常、フォーム画面でPOST送信したデータはコントローラで受け取ります。
Laravel5.2ではRequestクラスを使ってデータを取得します。
Laravelでのリクエスト処理を理解するためにサンプルで作成してみます。
サンプルプログラムの仕様
【1】フォーム画面でPOST送信
【2】コントローラで処理
- データを受け取る
- ビューにデータを渡す
【3】ビューで表示
【1】フォーム画面でPOST送信
<h1>評価</h1>
<form action="form_post" method="post" accept-charset="utf-8">
<!-- トークンの追加 -->
{!! csrf_field() !!}
<label>
<input type="radio" name="hyouka" value="good" checked="checked"> 良い
</label>
<label>
<input type="radio" name="hyouka" value="bad"> 悪い
</label>
コメント<br>
<input type="text" name="comment" value="">
<input type="submit" value="送信" >
</form>
【2】コントローラで処理
public function form_post(Request $request) { …(1)
$post_data = $request::all(); ...(2)
return view('hyouka.result',compact('post_data')); …(3)
}
【解説】
今回、学習する箇所です。
(1)form_post関数の引数に「Request $request」を追加します。
(2)POST送信されたデータをすべて配列($post_data)にいれます。
- その他のやり方 -
$hyouka = $request->input('hyouka');
$comment = $request->input('comment');
(3)compact関数でHyouka/result.blade.phpにPOST送信されたデータを配列の状態で渡します。
withメソッドでも可能です。
今回、学習する箇所です。
(1)form_post関数の引数に「Request $request」を追加します。
(2)POST送信されたデータをすべて配列($post_data)にいれます。
- その他のやり方 -
$hyouka = $request->input('hyouka');
$comment = $request->input('comment');
(3)compact関数でHyouka/result.blade.phpにPOST送信されたデータを配列の状態で渡します。
withメソッドでも可能です。
【3】ビューで表示
ビュー側で配列を展開します。
<h1>評価結果</h1>
<p class="text-center">
評価は{{$post_date['hyouka']}} <br>
コメント:{{$post_date['comment']}}
</p>
最後にルーティングの設定して終わりです。
以上です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。