adriantrainor/laravelvalidator

Laravel 验证器助手

5.6.3 2018-10-22 08:42 UTC

This package is auto-updated.

Last update: 2024-09-22 23:35:12 UTC


README

安装包
composer require adriantrainor/laravelvalidator
注册提供者
'providers' => [
    ...
    AdrianTrainor\LaravelValidator\Providers\ValidatorServiceProvider::class,
]
使用 make:validator 命令创建新的验证器
php artisan make:validator PostsValidator
简单验证器
<?php
namespace App\Validators;

use AdrianTrainor\LaravelValidator\Traits\Validator;

class PostsValidator
{
    use Validator;

    /**
     * Define validator rules
     *
     * @var array
     */
    protected $rules = [
        'title' => 'required'
    ];

    /**
     * Set custom error messages
     *
     * @var array
     */
    protected $messages = [
        'title.required' => 'The title field is required.'
    ];

    /**
     * Rename attributes
     *
     * @var array
     */
    protected $customAttributes = [
        'title' => 'name',
    ];

}
唯一规则的示例,其行为取决于帖子是正在创建还是编辑。
<?php
namespace App\Validators;

use AdrianTrainor\LaravelValidator\Traits\Validator;
use App\Models\Post;

class PostsValidator
{
    use Validator;

    /**
     * Define validator rules
     *
     * @var array
     */
    protected $rules = [
        'title' => 'required|unique'
    ];

    /**
     * Rename attributes
     *
     * @var array
     */
    protected $customAttributes = [
        'title' => 'name',
    ];

    /**
     * @param Post $post
     * @return \Illuminate\Contracts\Validation\Validator
     */
    public function edit(Post $post)
    {
        return $this->make($post->toArray(), [
            'title' => [
                'required',
                Rule::unique('posts')->ignore($post->id),
            ]
        ]);
    }
}


<?php
namespace App\Http\Controllers;

use App\Validators\PostsValidator;

class PostsController extends Controller {

    public function create(Request $request) {
        
        // Validate using default rules
        $validator = validatorFactory(PostsValidator::class)->make($request->all());
        
    }

    public function edit(Request $request) {
        
        // Validate using a unique exception rule on edit
        $validator = validatorFactory(PostsValidator::class)->edit($post);
        
    }
}