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>
フォーム送信先のルート定義
フォームを送信する先のルートを作成する。routes/web.php
に以下を追記
Route::post('/submit', 'FormController@submit');
フォーム内容を処理するためのコントローラーを作成する
namespace App\Http\Controllers; use Illuminate\Http\Request; class FormController extends Controller { public function submit(Request $request) { // フォームの送信内容を取得する $name = $request->input('name'); $email = $request->input('email'); // フォームの送信内容を処理する // ... // 処理が完了したら、リダイレクトする return redirect()->back()->with('success', '送信が完了しました。'); } }
laravel/form_example.1681203351.txt.gz · 最終更新: 2023/04/11 17:55 by mikoto