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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。