data-form, data-validate, data-lang

コメント記法

data-formで指定したフォーム部品で入力した値が、data-validateで指定した条件を満たしているかをLaravelのバリデーと機能を使って検証します。data-langでエラーメッセージを設定します。data-langがない時は、Laravelのエラーメッセージを表示します。

Example

/resources/views/example.blocs.html
8行目 HTML5でバリデーションを指定
9行目 コメント記法で記述
11行目 Bladeでエラーメッセージを表示

<html>

<span data-val=$name>名前</span>

<form method="post">
@csrf
<label for='name'>名前</label>
<input type='text' name='name' data-filter='katakana' required />

<!-- data-form="name" data-validate="required" data-lang="必須入力です。" -->
@error('name') <div>{{ $message }}</div> @enderror
<input type='submit' />
</form>

</html>

省略記法が使えます。

<html>

<span data-val=$name>名前</span>

<form method="post">
@csrf
<label for='name'>名前</label>
<input type='text' name='name' data-filter='katakana' required />

<!-- !name="required" data-lang="必須入力です。" -->
@error('name') <div>{{ $message }}</div> @enderror
<input type='submit' />
</form>

</html>

/routes/web.php
8行目 バリデーション設定を取得
9行目 バリデーション

use Illuminate\Http\Request;

Route::get('/blocs', function () {
    return view('example');
});

Route::post('/blocs', function (Request $request) {
    list($validate, $message) = \Blocs\Validate::get('example', $request);
    empty($validate) || $request->validate($validate, $message);

    return view('example', $request->all());
});

http://127.0.0.1:8000/blocs

<html>

<span>名前</span>

<form method="post">
<input type="hidden" name="_token" value="eSkvQ8hOiXkYZsWycvX2Wj64z8g3lULzZpnqVCSw">
<label for='name'>名前</label>
<input type='text' name='name' required value="" />

<div>必須入力です。</div>
<input type='submit' />
</form>

</html>