vzina/laravel-validation
Composer 安装命令:
composer require vzina/laravel-validation
包简介
Webman plugin vzina/laravel-validation
README 文档
README
简介
该组件将 Laravel 强大的验证功能引入 webman 框架中,提供了完整的数据验证解决方案。
所有方法和配置与 Laravel 几乎一致,因此使用方式可完全参考 Laravel 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); }); } }
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-06