laravel-validation

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Laravel Validation

Laravel 验证

Form requests as single source of truth for validation, with comprehensive testing patterns.
将表单请求作为验证的单一可信来源,并提供全面的测试模式。

Core Concepts

核心概念

form-requests.md - Validation rules:
  • Array-based validation rules
  • Custom validation rules
  • Conditional validation
  • Custom error messages
  • DTO transformation via
    toDto()
validation-testing.md - Validation testing:
  • RequestDataProviderItem helper
  • Pest datasets for systematic testing
  • Built-in helper methods (string, email, number, date, array, boolean)
  • Nested array testing
  • Conditional validation testing
  • Real-world examples
form-requests.md - 验证规则:
  • 基于数组的验证规则
  • 自定义验证规则
  • 条件验证
  • 自定义错误消息
  • 通过
    toDto()
    进行DTO转换
validation-testing.md - 验证测试:
  • RequestDataProviderItem 辅助工具
  • 用于系统化测试的Pest数据集
  • 内置辅助方法(字符串、邮箱、数字、日期、数组、布尔值)
  • 嵌套数组测试
  • 条件验证测试
  • 真实场景示例

Pattern

模式

php
final class CreateOrderRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'user_id' => ['required', 'integer', 'exists:users,id'],
            'items' => ['required', 'array', 'min:1'],
            'items.*.product_id' => ['required', 'integer'],
            'items.*.quantity' => ['required', 'integer', 'min:1'],
        ];
    }

    public function toDto(): CreateOrderDto
    {
        return CreateOrderDto::from($this->validated());
    }
}
All validation lives in form requests. Test validation systematically.
php
final class CreateOrderRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'user_id' => ['required', 'integer', 'exists:users,id'],
            'items' => ['required', 'array', 'min:1'],
            'items.*.product_id' => ['required', 'integer'],
            'items.*.quantity' => ['required', 'integer', 'min:1'],
        ];
    }

    public function toDto(): CreateOrderDto
    {
        return CreateOrderDto::from($this->validated());
    }
}
所有验证逻辑都存在于表单请求中。对验证进行系统化测试。