也门自由/laravel-validation

此包的最新版本(0.0.8)没有提供许可证信息。

使用laravel验证独立支持翻译。

0.0.8 2017-11-27 13:50 UTC

This package is auto-updated.

Last update: 2024-08-28 01:46:48 UTC


README

Software License Build Status Quality Score

一个用于在laravel外部使用laravel验证并支持翻译错误消息的小型包。此包是扩展自rakit/validation,所以请阅读它的文档以获取更多信息。

功能

  • 通过特质轻松初始化验证。
  • 支持多语言错误消息。
  • 更多功能即将推出。

要求与安装

需要PHP 7.0+

通过Composer

$ composer require yemenifree/laravel-validation

入门

在类中添加HasValidator特质以初始化验证。

use Yemenifree\Validation\Traits\HasValidator;

class SomeController
{
    use HasValidator;
    //
}

然后,要验证一些数据,您可以传递数据数组和规则以及其他选项。

    $this->valid(array $data, array $rules, array $messages = [], array $aliases = [])

例如

/**
 * Register User
 *
 * @return array
 */
public function register()
{
    $isValid = $this->valid(
    [
        'username' => 'salah',
            'password' => 'test'
    ]
    , [
        'username' => 'required',
        'password' => 'required',
    ]);
    
    if(!$isValid){
        // data not valid.
    }

    // every thing right.
}

如果您在控制器中所有表单都有相同的响应,您可以在类中创建InValidCallback来一次性处理验证错误。

use Yemenifree\Validation\Traits\HasValidator;

class SomeController
{
    use HasValidator;
    
    /**
     * Register User
     *
     * @return array
     */
    public function register()
    {
        $isValid = $this->valid(
        [
            'username' => 'salah',
            'password' => 'test'
        ]
        , [
            'username' => 'required',
            'password' => 'required',
        ]);
        
        // if data not valid will excute `InValidCallback` in this class.
        if(!$isValid)
        {
            return;
        }
        
        // every thing right.
    }
    
    /**
     * In valid function.
     *
     * @param array $errors
     *
     * @throws InvalidArgumentException
     */
    public function InValidCallback(array $errors)
    {
        // do whatevet you want with errors.
        
        return false;
    }
}

您可以使用自定义翻译文件来为验证错误提供翻译。

use Yemenifree\Validation\Traits\HasValidator;
    
class SomeController
{
    use HasValidator;
    
    public function __construct()
    {
        $this->setValidatorLocal(
// file name wihout .php
        'ar',
        // path of translate
        'translate/path'
        );
    }
        
    /**
     * Register User
     *
     * @return array
     */
    public function register()
    {
        $isValid = $this->valid(
        [
            'username' => 'salah',
            'password' => 'test'
        ]
        , [
            'username' => 'required',
            'password' => 'required',
        ]);
        
         if(!$isValid)
        {
            // message errors.
            $errors = $this->getValidErrors();
        }
        
        // every thing right.
    }
}

翻译文件必须返回消息数组。例如,请参阅src/lang/ar.php

要访问Validator的所有方法,请使用getValidator()方法。

use Yemenifree\Validation\Traits\HasValidator;

class SomeController
{
    use HasValidator;

    public function __construct()
    {
        // add custom rule.
        $this->getValidator()->addValidator('simple', new SimpleRule());
    }
}

有关规则的更多信息,请查看rakit/validation

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件yemenifree@yandex.com联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件