【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関数であることに注意しましょう。(赤線)
以上を記述してブラウザで確認すると冒頭の動画のようになります。
スポンサーリンク

