nextvikas/validator

Laravel 验证器支持多种场景

dev-main 2024-09-22 17:53 UTC

This package is auto-updated.

Last update: 2024-09-22 17:53:21 UTC


README

Total Downloads Software License GitHub tag

适用于 Laravel 框架的多场景简单验证器库。使用此包,您可以一次性编写验证器并在任何地方使用,轻松地管理您的领域规则。

安装

使用 composer

 composer require --prefer-dist "nextvikas/validator @dev"

用法

您的验证器类必须扩展 Nextvikas\Valdiator\AbstarctValdiator

<?php
#UserValidator.php

namespace YourApp\Validators;

use Nextvikas\Validator\AbstractValidator;

class UserValidator extends AbstractValidator
{

    protected $registration = [
        'first_name' => ['required'],
        'last_name' => ['required'],
        'username' => ['required'],
        'email' => ['required', 'email'],
        'home_page' => ['required', 'url']
    ];


    protected $activation = [
        'id' => ['required', 'exists:users'],
        'token' => ['required', 'min:64']
    ];

    
}

您必须在方法或控制器 __construct 方法中注入验证器才能使用它

<?php
# UserController.php

namespace Nextvikas\Validator;

use YourApp\Validators\UserValidator;
use Nextvikas\Validator\Exceptions\ValidationException;

class UserController extends Controller
{
    public function register(Request $request, UserValidator $valdiator)
    {
        $responce = $valdiator
            ->setScenario('registration')
            ->validate($request);


        if($valdiator->fails()) {
            return \Redirect::back()->withErrors($responce)->withInput();
        }

        if($valdiator->passes()) {
            return User::create($valdiator->getPostdata());
        }

    }
}

您必须在模型中扩展 Nextvikas\Validator\Model 以使用它

<?php
# YourApp/Models/User.php

use Nextvikas\Validator\Model;

class User extends Model
{

	......................
}