非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Laravel】フォーム利用の基本形

   

Laravelでフォームを扱う基本について書き留めます。

完成形は以下の動画のとおりです。テキストボックスに文字を入力して「送信」ボタンを押すと上のテキストがその文字に変わります。これをLaravelでどのように実装するかを紹介します。

 

 

今回のファイル構成も前回と同じく以下の通りとなっています。赤で示したファイルを修正します。

 

HelloController.php

前回の内容にpost関数を加えています。フォームの送信ボタンを押下したときに呼び出される関数です。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller{
    public function index(){
        $data = ['msg'=>'これはコントローラから渡されたメッセージです'];
        return view('hello.index', $data);
    }

    public function post(Request $request){
        $msg = $request->message;
        $data = ['msg'=>$msg];
        return view('hello.index', $data);
    }
}
 

 

index.blade.php

Viewを担うindex.blade.phpにはフォームを実装します。(@csrfの説明は今回割愛します。とりあえず入れておいてください)

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Form Test</title>
</head>
<body>
   <h1>Form Test</h1>
   <p>{{$msg}}</p>
   <form method="post" action="/hello">
      @csrf
      <input type="text" name="message">
      <input type="submit">
   </form>
</body>
</html>
 

 

web.php

最後にweb.phpに以下の一文を追加してください。

Route::post('hello', 'App\Http\Controllers\HelloController@post');
 

 

似たような構文があらかじめ書いているのでコピペなどで間違わないように。あくまでpost通信用であることと呼び出す関数はpost関数であることに注意しましょう。(赤線)

 

以上を記述してブラウザで確認すると冒頭の動画のようになります。

 

スポンサーリンク

 - Laravel