PHPackages                             vzina/laravel-validation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. vzina/laravel-validation

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

vzina/laravel-validation
========================

Webman plugin vzina/laravel-validation

00PHP

Since Jan 6Pushed 4mo agoCompare

[ Source](https://github.com/vzina/webman-validator)[ Packagist](https://packagist.org/packages/vzina/laravel-validation)[ RSS](/packages/vzina-laravel-validation/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Webman Validator
================

[](#webman-validator)

### 简介

[](#简介)

该组件将 **Laravel** 强大的验证功能引入 **webman** 框架中，提供了完整的数据验证解决方案。

所有方法和配置与 **Laravel** 几乎一致，因此使用方式可完全参考 [Laravel Validation 文档](https://laravel.com/docs/validation)。

### 基本使用

[](#基本使用)

```
use Vzina\LaravelValidation\ValidatorFactory;

$validator = make_validator(request_all(), [
    'title' => 'required|unique:posts|max:255',
    'file' => 'required|file|image',
    'body' => 'required',
]);

if ($validator->fails()) {
    return json($validator->errors()->first());
}

// 或者
request_validate([
    'title' => 'required|unique:posts|max:255',
    'file' => 'required|file|image',
    'body' => 'required',
]);
```

### 注解使用

[](#注解使用)

```
use Vzina\Attributes\Attribute\Route\Controller;
use Vzina\Attributes\Attribute\Route\GetMapping;
use Vzina\Attributes\Attribute\Route\PostMapping;
use Vzina\LaravelValidation\Attribute\Validator;

#[Controller(prefix: '/api')]
class TestController
{
    #[GetMapping(path: ''), Validator([
        'a' => 'required|int',
        'b' => 'required|foo',
    ])]
    public function index()
    {
        return 'index:' . time();
    }

    #[PostMapping(path: 'upload'), Validator([
        'file' => 'required|file|image',
    ])]
    public function upload()
    {
        return 'upload:' . time();
    }
}
```

### 扩展规则

[](#扩展规则)

```
use Illuminate\Validation\Validator;
use Vzina\Attributes\Attribute\Listener;
use Vzina\LaravelValidation\ValidatorFactory;
use Vzina\LaravelValidation\ValidatorFactoryResolved;

#[Listener(event: ValidatorFactoryResolved::class)]
class ValidatorListener
{
    public function handle(ValidatorFactory $factory)
    {
        $factory->extend('foo', function (string $attribute, mixed $value, array $parameters, Validator $validator): bool {
            return $value == 'foo';
        });

        // 当创建一个自定义验证规则时，你可能有时候需要为错误信息定义自定义占位符这里扩展了 :foo 占位符
        $factory->replacer('foo', function (string $message, string $attribute, string $rule, array $parameters): array|string {
            return str_replace(':foo', $attribute, $message);
        });
    }
}
```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance52

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/248f8ed7469cedfe37c86e79cff2ab49e9f3379b416f29bdf2460527dabfd1ed?d=identicon)[vzina](/maintainers/vzina)

### Embed Badge

![Health badge](/badges/vzina-laravel-validation/health.svg)

```
[![Health](https://phpackages.com/badges/vzina-laravel-validation/health.svg)](https://phpackages.com/packages/vzina-laravel-validation)
```

###  Alternatives

[webmozart/assert

Assertions to validate method input/output with nice error messages.

7.6k894.0M1.2k](/packages/webmozart-assert)[bensampo/laravel-enum

Simple, extensible and powerful enumeration implementation for Laravel.

2.0k15.9M104](/packages/bensampo-laravel-enum)[swaggest/json-schema

High definition PHP structures with JSON-schema based validation

48612.5M73](/packages/swaggest-json-schema)[stevebauman/purify

An HTML Purifier / Sanitizer for Laravel

5325.6M19](/packages/stevebauman-purify)[ashallendesign/laravel-config-validator

A package for validating your Laravel app's config.

217905.3k5](/packages/ashallendesign-laravel-config-validator)[crazybooot/base64-validation

Laravel validators for base64 encoded files

1341.9M8](/packages/crazybooot-base64-validation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
