Thinkphp5学习(17)输入和验证
来源:互联网 发布:淘宝爱奇艺会员不见了 编辑:程序博客网 时间:2024/04/27 23:40
学习内容:
视频教程:
https://www.kancloud.cn/tpshop/thinkphp5/228860
完全开发手册:https://www.kancloud.cn/manual/thinkphp5/129352
教程中的代码:https://github.com/phpervip/tp5a
TP5输入和验证
1.表单提交
2.表单验证
3.错误提示
4.自定义验证规则
5.控制器验证
演示:
创建控制器 创建视图
创建验证器
图1
图2
form表单提交
Controller
1.自动收集数据input(‘post.’)
2.自动检测字段allField(true)
3.自动校验正确性validate(true),User验证器配置各个字段验证规则
永远不要相信用户的数据,所以现在给表单提交沽加数据验证
创建验证器
关于生日,
提交时,填写日期格式:2001-01-01,
入库时,是,int(10)
显示时,是,2001-01-01,
model中:
<?php// application/index/model/User.phpnamespace app\index\model;use think\Model;class User extends Model{ // 定义类型转换,这样就不用读取器,修改器 // protected $dataFormat = 'Y/m/d'; protected $type=array( 'reg_time'=>'timestamp:Y-m-d', 'nickname'=>'serialize', 'birthday'=>'timestamp:Y-m-d' ); // 定义自动完成的属性 protected $insert = ['status'=>1]; //protected $update = ['status'=>1]; // 还可以结合修改器来指定自动完成 protected function setSexAttr($value,$data){ return $data['head_pic']=='boy.jpg'?1:0; } // 自动完成 insert update auto protected $update = array( 'sex' =>0 ); public function getRegTimeAttr($value,$data){ return date('Y-m-d',$value).$data['nickname']; } public function setRegTimeAttr($value){ return strtotime($value); }}
validate 中。
<?php// application/index/validate/User.phpnamespace app\index\validate;use think\Validate;class User extends Validate{ // 验证规则 protected $rule = [ ['nickname','require|min:5','昵称必须|昵称不能短于5个字符'], ['email','email','邮箱格式错误'], ['birthday','dateFormat:Y-m-d','生日格式错误'] ];}
<?php// application/index/controller/User.phpnamespace app\index\controller;use think\Controller;use app\index\model\User as mUser;class User extends Controller{ // 创建用户数据页面 public function create(){ return view(); } // 新增用户数据 public function add_0(){ // 自动收集表单数据 input('post.') // 自动排除不相关字段 // 自动校验非法字段 // 自动生成insert 语句 执行入库 $user = new mUser; if($user->allowField(true)->validate(true)->save(input('post.'))){ return '用户['.$user->nickname.':'.$user->id .']新增成功'; }else{ return $user->getError(); } } // 单独验证某字段 public function add(){ $data = input('post.'); // 验证birthday 是否是有效的日期 $check = Validate::is($data['birthday'],'date'); if(false===$check){ return 'birthday日期格式非法'; } // 因为Controller名是User,避免重复model取别名为mUser $user = new mUser; // 数据保存 $user->allowField(true)->save($data); return '用户['.$user->nickname.':'.$user->id.']新增成功'; }}
阅读全文
0 0
- Thinkphp5学习(17)输入和验证
- Thinkphp5学习(33)验证码
- ThinkPHP5 表单请求和验证
- ThinkPHP5 表单请求和验证
- ThinkPHP5 表单请求和验证
- ThinkPHP5 表单请求和验证
- ThinkPHP5 表单请求和验证
- ThinkPHP5 表单请求和验证
- thinkphp5.0学习(十):TP5.0验证器
- ThinkPHP5学习(6)请求和响应
- ThinkPHP5学习(12)模型和关联
- Thinkphp5学习(14)读取器和修改器
- Thinkphp5学习(25)视图和模板
- Thinkphp5学习(26)调试和日志
- ThinkPHP5.0安装MongoDb和验证码扩展包
- thinkphp5 配置验证码
- thinkphp5 验证码
- ThinkPHP5 验证码
- Android Studio 使用第三方库的方法
- OpenDDS开发手册---第三章(服务质量)1
- log4j使用及详细配置说明
- c++用分治法对随机数组归并排序
- 1384 全排列
- Thinkphp5学习(17)输入和验证
- Unsafe 与 CAS
- Nginx + Lua + 共享内存实现动态查询(简单例子)
- Linux 虚拟机 给用户 赋某个文件夹操作的权限
- input标签file类型,选择多个文件进行上传
- kafka学习记录
- PHP中==和===的不同(两个等号和三个等号的不同)
- 递归
- nginx缓存设置proxy_cache