更多笔记:

http://note.youdao.com/noteshare?id=e97a5df64888f27d912b3e966b9ec297&sub=web1520841813815


validate\Brand.php验证器里

D:\xampp\htdocs\shop\application\admin\validate\Brand.php

<?php
namespace app\admin\validate;
use think\Validate;
class Brand extends Validate
{
protected $regex = [ 'zip' => '/^1[3578]\d{9}$/']; //自定义正则
protected $rule = [
'brand_name' => 'require|unique:brand', //验证唯一这里跟的是表名
'brand_url' => 'url',
'brand_description' => 'min:6',
'phone'=>'require|unique:user|regex:/^1[3458]\d{9}$/',
]; protected $message = [
'brand_name.require' => '品牌名称必须',
'brand_name.unique' => '品牌名称不能重复',
'brand_url.url' => 'url格式不正确',
'brand_description.min' => '描述最少6个字符',
'phone.require'=>'手机号不能为空!',
'phone.unique'=>'手机号已经存在,请重新输入!',
'phone.regex'=>'请输入正确的手机号!',
]; //场景验证
protected $scene=[
'add'=>['merchant_id','group_id','username','password','repassword','nickename','phone'],
'edit'=>['merchant_id','group_id','username','password','repassword','nickename','phone'],
];
}

1. 控制器里的普通验证

public function add()
{
if(request()->isPost()){
$data=input('post.');
//带场景验证
$validate = validate('Brand');
if(!$validate->scene('add')->check($data)){
$this->error($validate->getError());
}
$add=db('brand')->insert($data);
if($add){
$this->success('添加品牌成功!','lst');
}else{
$this->error('添加品牌失败!');
}
return;
}
return view();
}

2. 控制器里ajax提交过来的数据验证:

//接收添加表单过来的数据
$data=input("post.");
//表单信息验证
$validate = validate('Shopdaqu');
if(!$validate->scene('add')->check($data)){
return json_encode($validate->getError());
}

ajax提交表单

//添加用户
$(document).on('click','#adduser',function(){
//加载等待代码
layer.load();
//此处演示关闭
setTimeout(function(){
layer.closeAll('loading');
}, 1500); $.ajax({
type:"post",
url:"{:url('admin/add')}",
data: $('#uploadForm').serialize(),
dataType:'json',
success:function(data)
{
var data = JSON.parse(data);
if (data['list']) {
$('#tableList').html(data.list); //接到返回来的table.html页面后,替换列表页面里的表格
layer.alert('添加成功!!',{icon:6}); //弹出修改成功的提示
}else{
layer.alert(data,{icon:5});
}
},
error:function(){
layer.alert("网络错误!请稍后重新尝试", {icon: 2});
}
})
});

Thinkphp5中的Validate验证器的使用的更多相关文章

  1. gin中如何自定义验证器

    package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding&qu ...

  2. springMVC中使用 JSR-303验证器( Validation 接口 )

    在pom.xml,添加validator验证器的依赖 <dependency> <groupId>org.hibernate</groupId> <artif ...

  3. [Form Builder]Form中的validate验证事件

    转:http://yedward.net/?id=70 Form的validate行为可以由一个总的form级别的validation属性来控制,可以通过set_form_property来设置成PR ...

  4. laravel中的validate验证的使用案例:

    第一个是设置,第二个是直接调用.

  5. 9、 Struts2验证(声明式验证、自定义验证器)

    1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...

  6. flask 自定义验证器(行内验证器、全局验证器)

    自定义验证器 在WTForms中,验证器是指在定义字段时传入validators参数列表的可调用对象,下面来看下编写自定义验证器. 行内验证器 除了使用WTForms提供的验证器来验证表单字段,我们还 ...

  7. 基于struts2框架-自定义身份证号验证器

    自定义拦截器的步骤: 1.定义一个验证器的类: > 自定义的验证器都需要实现 Validator接口.  > 可以选择继承 ValidatorSupport 或 FieldValidato ...

  8. struts2验证器

    1. Struts2 的验证(note6,struts2-8) 1). 验证分为两种: > 声明式验证* >> 对哪个 Action 或 Model 的那个字段进行验证 >&g ...

  9. thinkphp5.1验证器场景验证中传参的方法。

    一个场景:用户保存自己的昵称,如果已经有其他用户用了这个昵称则不允许保存,但是要排除当前用户自己,因为如果用户未作修改,新昵称和老昵称一样,是可以保存的. 因为昵称定义了唯一规则: 'name' =& ...

随机推荐

  1. Vertical roller mill from SBM

    Vertical roller mill has many different forms, but it works basically the same. All of these forms o ...

  2. SpringBoot | 第十四章:基于Docker的简单部署

    前言 讲解了单元测试,本章节讲讲应用的部署吧.总体而言,在进行自动化部署时,基本都会用上Jenkins+Maven+Docker进行部署.本章节主要讲解使用Maven+Docker进行SpringBo ...

  3. EditPlus常用操作

    EditPlus注册码在线生成 http://www.jb51.net/tools/editplus/ 随意填写个用户名,生成对应的密码就可以使用editplus了 EditPlus常用快捷键 编代码 ...

  4. java网络编程—TCP(1)

    演示tcp的传输的客户端和服务端的互访. 需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息. 客户端: 1,建立socket服务.指定要连接主机和端口. 2,获取socket流中的输出流. ...

  5. 2013 QConf上海软件开发大会总结

    带着工作中的一些疑问,我参加了在上海举办的QConf 全球软件开发大会.会议以主题的形式按分会场召开,我主要选择知名网站案例分析.大数据处理技术.高效能团队建设和金融系统架构与设计四个主题内容.三天会 ...

  6. C#中描述mssql中DateTime的最小值、最大值

    首先引用System.Data.SqlTypes 最小值:SqlDateTime.MinValue.Value 最大值:SqlDateTime.MaxValue.Value

  7. JS案例练习-手机微信聊天对话框

    先附图 CSS部分: <style> body{} *{;} li{list-style: none;} .container{ width:310px; height:600px; ma ...

  8. elasticSearch 分布式安装

    1.在elasticSearch下的config下elasticsearch.yml文件最后一行添加注意 一定要加空格在:后面http.cors.enabled: truehttp.cors.allo ...

  9. DELL R730安装ESXI虚拟化

    dell安装esxi需要dell官方提供的镜像文件地址:http://www.dell.com/support/article/us/en/04/SLN290857/dell%E5%AE%9A%E5% ...

  10. hihocoder 第四十周 三分求极值

    题目链接:http://hihocoder.com/contest/hiho40/problem/1 ,一道简单的三分. 题目是在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求 ...