Laravel Validator 使用笔记

扩展

// 扩展验证方法
Validator::extend('valid_code',function ($attribute, $value, $parameters, $validator){
    return strlen($value) == 5;
},'编号不符合 :valid_year 年的要求');

// extendImplicit与extend的区别: 即使该字段规则中没有required也执行该验证
Validator::extendImplicit('valid_code',function ($attribute, $value, $parameters, $validator){
    return strlen($value) == 5;
},'编号不符合 :valid_year 年的要求');

// 替换该验证规则中的占位符
Validator::replacer('valid_code', function($message, $attribute, $rule, $parameters) {
    return str_replace(':valid_year','2017',$message);
});

$validator = Validator::make($input,[
    'code'=>'required|valid_code',
]);
// code.valid_code 若错误返回信息"编号不符合 2017 年的要求"

定义验证详解

$validatorStatus = $validator->passes(); //(bool)执行验证并返回是否验证成功
$validatorErrors = $validator->errors()->all();//(array)返回获得的错误信息数组
if(!$validatorStatus){
    return redirect('login')
        ->withErrors($validatorErrors)
        ->withInput();
}

验证与获取结果

$validator = Validator::make($input,[
    'code'=>'required|captcha',
],[
    'code.captcha'=>'The :attribute is invalid .'
],[
    'code'=>'code of captcha'
]);
// The code of captcha is invalid .

Validator::make($rules,$messages,$customAttributes)

  • rules: 定义验证规则
  • messages: 定义错误信息
  • customAttributes: 定义字段别名用于替换错误信息中的:attribute.

若验证失败返回错误信息为The code of captcha is invalid .
不定义customAttributes错误信息为The code is invalid .

个人博客 http://blog.xcxxkj.com
代码仓库 https://github.com/sleep-cat

本作品采用《CC 协议》,转载必须注明作者和本文链接
转载请告知
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!