役立つ情報
登録日: 2025-03-06   最終更新日: 2025-03-07

Laravel HTMLタグ名称が contents で 300文字制限バリデーションを作成する場合

Laravelのフォームリクエストバリデーションを使って、contents タグの文字数を300文字以内に制限する場合は、以下のように書きます。

フォームリクエストを作成


php artisan make:request ContentRequest

バリデーションルールを定義

app/Http/Requests/ContentRequest.php を編集する。


<?php
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ContentRequest extends FormRequest
{
    /**
     * 認可の設定(必要に応じて変更)
     */
    public function authorize(): bool
    {
        return true; // 必要なら適宜変更
    }

    /**
     * バリデーションルールを定義
     */
    public function rules(): array
    {
        return [
            'contents' => 'required|string|max:300',
        ];
    }

    /**
     * エラーメッセージをカスタマイズ(任意)
     */
    public function messages(): array
    {
        return [
            'contents.required' => '内容は必須です。',
            'contents.string' => '内容は文字列で入力してください。',
            'contents.max' => '内容は300文字以内で入力してください。',
        ];
    }
}

コントローラーで適用

作成したフォームリクエストをコントローラーで使用する。


use App\Http\Requests\ContentRequest;

public function store(ContentRequest $request)
{
    // バリデーション済みのデータを取得
    $validated = $request->validated();

    // データ保存などの処理
}

これで、contents フィールドに 300文字制限 のバリデーションが適用されます。


Copyright 役立つ情報.net