登録日:
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文字制限 のバリデーションが適用されます。