Laravel 验证
2016-03-17 22:40
537 查看
关于Laravel的表单验证,官方文档已经给出详细的用法,先略作总结。
Laravel的控制器基类BaseController使用ValidatesRequests trait,所以可以直接使用其validate方法进行数据验证。参数以此为\Illuminate\Http\Request request,验证规则数组,错误信息数组。每个视图都存在Illuminate\Support\MessageBagrequest,验证规则数组,错误信息数组。
每个视图都存在Illuminate\Support\MessageBag error变量,用于存储验证的错误信息。
关于ValidatesRequests的validate()方法
getValidationFactory方法
Factory接口提供了4个方法
make方法返回\Illuminate\Contracts\Validation\Validator实例,
extend方法用于扩展自定义的验证规则
Validator接口提供4个方法
fails方法返bool类型,验证是否通过,
failed方法获取验证失败的规则数组,
sometimes方法当callback返回true是进行验证否则忽略验证,
after方法当验证完成时调用callback
综合上述,验证可以可以使用Validator门面,调用静态调用make方法获取Validator实例,通过fails方法判断是否通过验证
示例代码
检查请求是够通过验证后,可以使用withErrors方法将错误数据一次性存放到session,使用该方法时,$errors变量重定向后自动在视图间共享,从而允许你轻松将其显示给用户,withErrors方法接收一个验证器、或者一个MessageBag,又或者一个PHP数组。
关于多个表单验证,表单请求验证,错误信息的处理 可官方文档
Laravel的控制器基类BaseController使用ValidatesRequests trait,所以可以直接使用其validate方法进行数据验证。参数以此为\Illuminate\Http\Request request,验证规则数组,错误信息数组。每个视图都存在Illuminate\Support\MessageBagrequest,验证规则数组,错误信息数组。
每个视图都存在Illuminate\Support\MessageBag error变量,用于存储验证的错误信息。
validate(Request $request, array $rules, array $messages = [], array $customAttributes = [])
关于ValidatesRequests的validate()方法
public function validate(Request $request, array $rules, array $messages = [], array $customAttributes = []) { $validator = $this->getValidationFactory()->make($request->all(), $rules, $messages, $customAttributes); if ($validator->fails()) { $this->throwValidationException($request, $validator); } }
getValidationFactory方法
protected function getValidationFactory() { // use Illuminate\Contracts\Validation\Factory; return app(Factory::class); }
Factory接口提供了4个方法
make方法返回\Illuminate\Contracts\Validation\Validator实例,
extend方法用于扩展自定义的验证规则
interface Factory { public function make(array $data, array $rules, array $messages = [], array $customAttributes = []); public function extend($rule, $extension, $message = null); public function extendImplicit($rule, $extension, $message = null); public function replacer($rule, $replacer); }
Validator接口提供4个方法
fails方法返bool类型,验证是否通过,
failed方法获取验证失败的规则数组,
sometimes方法当callback返回true是进行验证否则忽略验证,
after方法当验证完成时调用callback
public function fails(); public function failed(); public function sometimes($attribute, $rules, callable $callback); public function after($callback);
综合上述,验证可以可以使用Validator门面,调用静态调用make方法获取Validator实例,通过fails方法判断是否通过验证
示例代码
$validator = Validator::make($request->all(), [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]); if ($validator->fails()) { return redirect('post/create') ->withErrors($validator) ->withInput(); }
检查请求是够通过验证后,可以使用withErrors方法将错误数据一次性存放到session,使用该方法时,$errors变量重定向后自动在视图间共享,从而允许你轻松将其显示给用户,withErrors方法接收一个验证器、或者一个MessageBag,又或者一个PHP数组。
关于多个表单验证,表单请求验证,错误信息的处理 可官方文档
相关文章推荐
- php的一些小笔记--字符串
- PHP 字符串变量
- PHP session文件锁住及解决
- 【PHP】microtime 与 time 函数介绍
- php读取zip注释
- Matplotlib 图例中文显示(大小修改)
- PHP中的命名空间
- php文件修改后刷新没反应不生效的原因
- php 获取中文的拼音
- php cli模式没有加载php.ini
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
- php获取客户端IP
- 在ubuntu14.14 安装php扩展扩展出现的问题
- THINK PHP U的用法
- php常用的的全局变量
- PHP 5 常量
- PHP 5 数据类型
- PHP运算符
- PHP 5 echo 和 print 语句
- yaf(一)