php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充
ThinkPHP M方法实现自动验证与自动填充
通常,我们会将自动验证与自动填充规则写入模型类里,然后再用 D 方法实例化模型类来实现对表单的自动验证与自动填充功能。由于 M 方法只是实例化基础模型类而不会去实现模型类里定义的逻辑,因此 M 方法一般情况下是无法完成自动验证与自动填充的。
ThinkPHP 提供的 setProperty 方法,可以动态更改 Model 的属性。在操作中,利用 setProperty 方法便可以在使用 M 方法(不创建模型类)时实现自动验证与自动填充功能。
setProperty 方法是 Model 类的内置方法,用于设置模型的属性值,语法如下:
setProperty(string name, mixed value)
例子:
$Article = M("Article");
// 自动验证规则
$validate = array(
array('title','require','标题不能为空!',1),
array('title','','标题已经存在',0,'unique',1),
array('content','require','内容必须',1),
);
// 自动填充规则
$_auto = array(
// 新增癿时候把 status 字段设置为 1
array('status','1',self::MODEL_INSERT),
// 新增癿时候把 create_time 字段设置为 time() 时间戳
array('create_time','time',self::MODEL_INSERT,'function'),
);
$Article->setProperty("_validate",$validate);
$Article->setProperty('_auto',$auto);
// 创建数据对象
if ($Article->create()){
// 创建数据对象成功,写入数据
$User->add();
}else{
// 创建数据对象失败
exit($Article->getError());
}
要在 M 方法中使用自动验证与自动填充,需要以数据对象的方式(create())写入数据,更多信息参见《ThinkPHP create 方法:表单数据智能写入》。
原则上讲,应该将自动验证与自动填充等逻辑在模型里面来完成,但 ThinkPHP 提供了 setProperty 方法,以方便在其他特殊情况(如使用 M 方法时)时也能实现自动验证与自动填充功能。
php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充相关推荐
- php 自动验证类,Thinkphp实现自动验证和自动完成
这篇文章主要介绍了Thinkphp实现自动验证和自动完成的相关资料,需要的朋友可以参考下 Thinkphp的自动验证和自动完成都是根所表单提交的内容来的,对部分数据进行规则验证和处理后插入到数据库. ...
- 创建一个长方形类,成员域有长方形的长和宽,成员方法有计算长方形的面积,在main方法中创建长方形类对象,并调用计算长方形面积的方法。
package TestDemo; /** 创建一个长方形类,成员域有长方形的长和宽,成员方法有计算长方形的面积.* 在main方法中创建长方形类对象,并调用计算长方形面积的方法.*/ import ...
- odoo10参考系列--ORM API 一(记录集、环境、通用方法和创建模型)
记录集 版本8.0中新东西: 这个在Odoo8.0中新加的API的页面文档应该是不断向前发展的主要开发API.同时它还提供了关于移植或桥接版本7和更早版本的"旧API"的信息,但没 ...
- Scala apply()方法用于创建伴生类对象
- php字段验证规则,ThinkPHP 自动验证及验证规则详解
ThinkPHP 自动验证及验证规则详解 ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证.自动验证是基于数据对象的,而大多情况下数据对象是基于 $_ ...
- php框架m方法详细,Thinkphp框架中D方法与M方法的区别是什么
Thinkphp框架中D方法与M方法的区别是什么 发布时间:2021-02-06 23:09:38 来源:亿速云 阅读:69 作者:小新 小编给大家分享一下Thinkphp框架中D方法与M方法的区别是 ...
- php中的where用法,ThinkPHP中where()使用方法详解
本文介绍thinkphp的where()方法的用法.where方法可以用于对数据库操作的结果进行筛选.即sql查询语句中的where子句. 今天来给大家讲下查询最常用但也是最复杂的where方法,wh ...
- 在thinkphp框架中如何对多表进行操作(thinkphp多表查询方法)
在thinkphp框架中如何对多表进行操作(thinkphp多表查询方法) 本文讲解了在thinkphp框架中如何对多表进行操作,ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷 ...
- thinkphp模版调用函数方法
原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...
最新文章
- 视频编解码之理论概述 和即时通信
- BUX让你轻松赚美元
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
- 谷歌云使用账号密码_如何使用Google密码检查
- 软考考前冲刺第一章计算机硬件基础知识
- 一文说清Elasticsearch的核心概念
- 8种最坑的SQL错误用法,你有没有踩过坑?
- 螺旋矩阵c++语言_一起刷 leetcode 之螺旋矩阵(头条和美团真题)
- WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能
- android开发学术报告,基于Android应用的安全防护技术研究
- kubernetes视频教程笔记 (30)-安全-鉴权Authorization
- OpenCV绘制多边形的代码
- 华为云虚拟服务器怎么搭建,云服务器怎么搭建虚拟主机
- 实现1.1、1.1.1的多级编号文档排版
- 计算机硬件系统的运算器又称为,2016计算机专业知识:计算机硬件系统(一)...
- 微信小程序赋能会员管理和会员营销互动
- matlab中逗号分号冒号方括号,matlab中分号、冒号、逗号等常用标点符号的功能和用法总结...
- java搭建直播平台
- 1.一个整形数组的最大值
- 初识Docker:(5)Docker自定义镜像
热门文章
- pc 图片预览放大 端vue_移动端Vue.js的图片预览组件,支持放缩、滑动功能!
- mysql分页查询_4种MySQL分页查询优化的方法,你知道几个?
- springboot接收JSONArray
- Python 开发一个间谍小程序
- 趣图:如何假装自己是一个IT人?
- Python 制作微信全家福,你就是朋友圈最亮的仔!
- JAVA实现可视化的xpath_Java学习之XPath
- html点击按钮弹出悬浮窗_网课助手1.0 支持悬浮窗搜题等多功能
- php重量,在PHP中按重量生成随机结果?
- java opennlp_OpenNLP中语言检测模型训练和模型的使用