About laravel-validation
A Laravel development skill that organizes form-request validation rules and systematic validation tests. It is for developers building Laravel applications that want requests to define validation behavior and tests to cover it.
Key features
- 01Array-based and custom validation rules
- 02Conditional rules and custom error messages
- 03DTO transformation with `toDto()`
- 04Pest datasets for validation tests
- 05Nested arrays and field-presence testing
Use cases
- 01Define validation in Laravel form requests
- 02Test conditional and nested input rules
- 03Check fields governed by `present`, `sometimes` or `missing`
- 04Transform validated request data into DTOs
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ leeovery/ agentic-skills --skill laravel-validationAfter installing, type/laravel-validationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/form-requests.mdmacro-setup.mdMacroServiceProvider.phpRequestDataProviderItem.phpvalidation-testing.mdValidPostcodeRule.phpDetails
From the project READMELaravel Validation
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)
- Presence testing with
absent()(forpresent/sometimes/missingrules) - Nested array testing
- Conditional validation testing
- Real-world examples
Pattern
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.
Comments
Markdown supported