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 5mo 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 today

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

16

—

LowBetter than 4% of packages

Maintenance47

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity13

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://avatars.githubusercontent.com/u/7343318?v=4)[weijian.ye](/maintainers/vzina)[@vzina](https://github.com/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

[marcosh/php-validation-dsl

A DSL for validating data in a functional fashion

483.9k](/packages/marcosh-php-validation-dsl)

PHPackages © 2026

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