laravel:form_example
フォームページを作成する
プロジェクトルートのroutes/web.php
に以下のルートを記載する。
Route::get('/form', 'App\Http\Controllers\FormController@index'); Route::post('/submit', 'App\Http\Controllers\FormController@submit');
これで、/form
にアクセスするとFormControllerのindexメソッドが呼び出され、
/submit
にアクセスするとFormControllerのsubmitメソッドが呼び出されるようになる。
コントローラーの作成
FormControllerを作成してindexメソッドを定義する。
php artisan make:controller FormController
これで、app/Http/Controllers
ディレクトリにFormController.phpが作成される。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class FormController extends Controller { public function index() { return view('form') } public submit(Request $request) $name = $request->input('name'); $email = $request->input('email'); // フォームの入力内容を次のビューに渡す return view('submit', [ 'name' => $name, 'email' => $email ]); }
この場合、FormControllerクラスにindexメソッドを定義してform.blade.phpビューを表示する.
ビューの作成
resources/views
ディレクトリにform.blade.php
という名前でフォームを表示するビューを作成する。
<!DOCTYPE html> <html> <head> <title>Form</title> </head> <body> <form method="POST" action="/submit"> @csrf <div> <label for="name">Name</label> <input type="text" name="name" id="name"> </div> <div> <label for="email">Email</label> <input type="email" name="email" id="email"> </div> <div> <button type="submit">Submit</button> </div> </form> </body> </html>
同様に、結果表示用のビューsubmit.blade.php
を作成する。
<!DOCTYPE html> <html> <head> <title>Result</title> </head> <body> <h1>Result</h1> <p>Name: {{ $name }}</p> <p>Email: {{ $name }}</p> </body> </html>
laravel/form_example.txt · 最終更新: 2023/04/11 18:33 by mikoto