laratalks/validator

Laravel 验证支持多种场景

v2.0 2019-09-25 09:11 UTC

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();
        }
    }
}