Laravelでのフォームとバリデーションの動作確認

app/Http/Controllers/ValidationController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ValidationController extends Controller
{
    // 入力画面を表示。
    public function show(Request $request) {
        return view('vtest');
    }
	// アクション。
    public function post(Request $request) {
        $validated = $request -> validate([
            'txtMailAddress' => 'required | email:filter',
            'emailMailAddress' => 'required | email',
        ]);
        return view('vtestResult')
            ->with('txtMailAddress', $validated['txtMailAddress'])
            ->with('emailMailAddress', $validated['emailMailAddress']);
    }
}

resources/views/vtest.blade.php

oldヘルパ関数で前回の入力値を取得できる。
$errors->get(‘nameの値’)で、バリデーションエラーの内容を確認できる。

<html>
    <head>
        <title>vtest</title>
    </head>
    <body>
    <form method="post" action="{{route('vpost')}}">
        @csrf
        タイプ:text&nbsp;:&nbsp;<input type="text" name="txtMailAddress"><br>
        タイプ:email&nbsp;:&nbsp;<input type="email" name="emailMailAddress"><br>
        <input type="submit" value="送信">
    </form>
    <hr>
    バリデーションエラーの結果<br>
    text&nbsp;:&nbsp;{{var_dump($errors -> get('txtMailAddress'))}}<br>
    email&nbsp;:&nbsp;{{var_dump($errors -> get('emailMailAddress'))}}<br>
    oldヘルパ関数(txtMailAddress):{{old('txtMailAddress')}}<br>
    oldヘルパ関数(emailMailAddress):{{old('emailMailAddress')}}<br>
    </body>
</html>

resources/views/vtestResult.blade.php

<html>
    <head>
        <title>vtestResult</title>
    </head>
    <body>
        結果<br>
        text&nbsp;:&nbsp;{{$txtMailAddress}}<br>
        emai&nbsp;:&nbsp;{{$emailMailAddress}}<br>
    </body>
</html>

routes/web.php

use App\Http\Controllers\ValidationController;

// バリデーションテスト用フォーム表示。
Route::get('/vtest', [ValidationController::class, 'show']) -> name('vtest');
// バリデーションテスト用フォームのアクション。
 Route::post('/vtest', [ValidationController::class, 'post']) -> name('vpost');

コメント

タイトルとURLをコピーしました