laratalks / validator
Laravel 验证支持多种场景
v2.0
2019-09-25 09:11 UTC
Requires
- illuminate/contracts: ^5.4 || ^6.0
- illuminate/validation: ^5.4 || ^6.0
This package is auto-updated.
Last update: 2024-08-25 23:16:36 UTC
README
这是一个适用于 Laravel 框架的简单验证库,支持多种场景。通过使用此包,您可以一次性编写验证器并在任何地方使用它,轻松地管理领域规则。
安装
使用 composer
composer require laratalks/validator
使用方法
您的验证类必须扩展 Laratalks\Valdiator\AbstarctValdiator
<?php #UserValidator.php namespace YourApp\Validators; use Laratalks\Validator\AbstractValidator; class UserValidator extends AbstractValidator { protected $registrationRules = [ 'name' => ['required'], 'email' => ['required', 'email'], 'home_page' => ['required', 'url'] ]; protected $activationRules = [ 'id' => ['required', 'exists:users'], 'token' => ['required', 'min:64'] ]; protected $anotherScenarioRules = [ 'key1' => ['rule1', 'rule2'], 'key2' => ['rule1', 'rule2'] ]; }
您必须在方法或控制器 __construct
方法中注入验证器才能使用它
<?php # UserController.php namespace Laratalks\Validator; use YourApp\Validators\UserValidator; use Laratalks\Validator\Exceptions\ValidationException; class UserController extends Controller { public function register(Request $request, UserValidator $valdiator) { try { // validate user input $valdiator ->setScenario('registration') ->validate($request->all()); } catch (ValidationException $e) { // catch errors return $e->getErrors(); } } }