ユーザ用ツール

サイト用ツール


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