laravel5.1 -- 自定义验证规则

laravel5.1提供了非常方便的验证规则来验证HTTP传输过来的数据,利用这些规则你几乎可以完成你想要的任何验证。
相信多数利用laravel做过项目的朋友都已经熟练掌握了,现在我将以另一种方式来进行自定义验证。
这种自定义验证在laravel 4.*中的文档中已经写的非常清楚,但在laravel 5.*里却没有说明。现在我们来实现它。

假设一篇文章有几个标签(tags),我们要来自定义验证规则来验证tags

Create a validator class

App\Services下新建一个Validation

Register the custom validator

Validation类完成后,我们就需要将它注册到服务容器中
App\Providers\AppServiceProvider.phpboot方法中添加:

boot方法中添加了Validator::resolver(..)这段代码

request验证

PostRequest.php中我们可以这样写

return [
    'tags' => 'tags
];

因为我们是验证文章的字段数据,所以我们还要提供它的title,summart,content等字段

blog ? ',' . $this->blog : '';
        
        return [
            'title' =>  'required|max:255',
            'slug'  =>  'required|unique:posts,slug' . $id,
            'summary' => 'required|max:65000',
            'content' => 'required|max:65000',
            'tags' => 'tags'
        ];
    }
}

完成之后,自己就可以在Controller中测试是否成功了。

laravel5.1中提供的是 Validator::extend, 但我们这样做的好处是我们可以自定义验证类,一旦注册后,就可以按照它的规则来进行验证了。

你可能感兴趣的:(php,laravel,apache,validation)