ユーザ用ツール

サイト用ツール


laravel:form_example

文書の過去の版を表示しています。


フォームページを作成する

プロジェクトルートのroutes/web.phpに以下のルートを記載する。

Route:get('/form','FormController@index');

これで、/formにアクセスするとFormControllerのindexメソッドを呼び出すことが出来る。

コントローラーの作成

FormControllerを作成してindexメソッドを定義する。

php artisan make:controller FormController

これで、app/Http/ControllersディレクトリにFormController.phpが作成される。

namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
class FormController extends Controller
{
  public function index()
  {
    return view('form')
  }
}

この場合、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.1681192009.txt.gz · 最終更新: 2023/04/11 14:46 by mikoto