ThinkPHP的易忽视点小结
1、使用对象的方法插入数据 D用法。$Form = D('Form'); $data['title'] = 'ThinkPHP'; $data['content'] = '表单内容'; $Form->add($data);其实thinkphp还支持对象的方式直接向数据库插入数据,如下:$Form = D('Form'); $Form->title = 'ThinkPHP'; $Form->content = '表单内容'; $Form->add();2、不指定条件对数据更新。$Form = M("Form"); // 要修改的数据对象属性赋值 $data['id'] = 5; $data['title'] = 'ThinkPHP'; $data['content'] = 'ThinkPHP3.1版本发布'; $Form->save($data); // 根据条件保存修改的数据 save方法会自动识别数据对象中的主键字段,并作为更新条件。当然,你也可以显式的传入更新条件,也就是我们最常用的方法:$Form = M("Form"); // 要修改的数据对象属性赋值 $data['title'] = 'ThinkPHP'; $data['content'] = 'ThinkPHP3.1版本发布'; $Form->where('id=5')->save($data); // 根据条件保存修改的数据 其实还有对象的方式,就像上面提到的,插入数据,用对象的方式一样:$Form = M("Form"); // 要修改的数据对象属性赋值 $Form->title = 'thinkphp'; $Form->content = 'ThinkPHP3.1版本发布'; $Form->where('id=5')->save(); // 根据条件保存修改的数据 并且,可以将主键字段包含在要保存的数据里,这样就可以不需要写where了$Form = M("Form"); // 要修改的数据对象属性赋值 $Form->id = 5; $Form->title = 'thinkphp'; $Form->content = 'ThinkPHP3.1版本发布'; $Form->save(); // 根据数据对象中的主键保存修改的数据3、单个字段值的修改。有些时候,我们只需要修改某个字段的值,就可以使用setField方法,而不需要每次都调用save方法。$Form = M("Form"); // 更改title值 $Form->where('id=5')->setField('title','ThinkPHP');6、强大的增减字段值运算。thinkphp中,可以对某个字段的数据直接执行增减操作。对于统计字段,系统还提供了更加方便的setInc和setDec方法。$User = M("User"); // 实例化User对象 $User->where('id=5')->setInc('score',3); // 用户的积分加3 $User->where('id=5')->setInc('score'); // 用户的积分加1 $User->where('id=5')->setDec('score',5); // 用户的积分减5 $User->where('id=5')->setDec('score'); // 用户的积分减17、不使用where来执行删除。$User->delete('1,2,5'); // 删除主键为1,2和5的用户数据。 这种用法可以用在类似于签到时候,用户积分自动增加的例子上。8、打印sql语句echo $User->getLastSql();或者echo $User->_sql();循环输出volist 还有别名 iterate模版赋值:$User = D('User') $list = $User->findAll() $this->assign('list',$list)模版定义:<iterate name="list" id="vo"> {$vo.name} </iterate>注意 name 和 id 表示的含义// 输出 list 的第 5~15 条记录 <iterate name="list" id="vo" offset="5" length='10'> {$vo.name} </iterate> // 输出偶数记录 <iterate name="list" id="vo" mod="2" > <eq name="mod" value="1"> {$vo.name} </eq> </iterate> // 输出 key <iterate name="list" id="vo" key="k" > {$k}.{$vo.name} </iterate> //子循环输出 <volist name="list" id="vo"> <iterate name="vo['sub']" id="sub"> {$sub.name} </iterate> </volist>Switch 标签<switch name="name"> <case value="1">value1</case> <case value="2">value2</case> <default />default </switch>其 中 name 属性可以使用函数以及系统变量,例如:<switch name="Think.get.userId|abs"> <case value="1">admin</case> <default />default </switch>也 可以对 case 的 value 属性使用变量,例如:<switch name="userId"> <case value="$adminId">admin</case> <case value="$memberId">member</case> <default />default </switch>比较标签<eq name="name" value="value">value</eq> // name 变量的值等于 value 就输出 <neq name="name" value="value">value</neq> // name 变量的值不等于 value 就输出 <gt name="name" value="5">value</gt> // name 变量的值大于 5 就输出 <egt name="name" value="5">value</egt> // name 变量的值大于等于 5 就输出 <lt name="name" value="5">value</lt> // name 变量的值小于 5 就输出 <elt name="name" value="5">value</elt> // name 变量的值小于等于 5 就输出 //其实上面的所有标签都是 compare 标签的别名 // 其中 type 属性的值就是上面列出的判断标签名称 <compare name="name" value="5" type="eq">value</compare> // name 变量的值等于 5 就输出 If标签<if condition="$name eq 1 "> value1 <elseif condition="$name eq 2" />value2 <else /> value3 </if>C操作操作(动态)配置: 获取:C('配置参数')设置:C('配置参数 ',新值)D操作快速创建模型数据对象:$model = D('User');等效于$model = new UserModel();S操作快速操作缓存方法获取:S('name')设置:S('name','value');删 除:S('name',NULL);F操作快速文件数据保存方法使用方法与S操作一样L操作快速操作语言变量获取:L('语言变量');设置:L('语言变量','值');如: L('USER_INFO','用户信息'); //设置名称为USER_INFO的语言变量 批量赋值:$arr['语言变量1'] = '值1';$arr['语言变量2'] = '值2';L($arr);ThinkPHP系统常量THINK_PATH // ThinkPHP 系统目录 APP_PATH // 当前项目目录 APP_NAME // 当前项目名称 MODULE_NAME //当前模块名称 ACTION_NAME // 当前操作名称 TMPL_PATH // 项目模版目录 LIB_PATH // 项目类库目录 CACHE_PATH // 项目模版缓存目录 CONFIG_PATH //项目配置文件目录 LOG_PATH // 项目日志文件目录 LANG_PATH // 项目语言文件目录 TEMP_PATH //项目临时文件目录 PLUGIN_PATH // 项目插件文件目录 VENDOR_PATH // 第三方类库目录 DATA_PATH // 项目数据文件目录 IS_APACHE // 是否属于 Apache IS_IIS //是否属于 IIS IS_WIN //是否属于Windows 环境 IS_LINUX //是否属于 Linux 环境 IS_FREEBSD //是否属于 FreeBsd 环境 NOW_TIME // 当前时间戳 MEMORY_LIMIT_ON // 是否有内存使用限制 MEMORY_LIMIT_ON // 是否有内存使用限制 OUTPUT_GZIP_ON // 是否开启输出压缩 MAGIC_QUOTES_GPC // MAGIC_QUOTES_GPC THINK_VERSION //ThinkPHP 版本号 LANG_SET // 浏览器语言 TEMPLATE_NAME //当前模版名称 TEMPLATE_PATH //当前模版路径// 网站根目录地址 __APP__ // 当前项目(入口文件)地址/index/article // 当前模块地址 __ACTION__ // 当前操作地址 __SELF__ // 当前 URL 地址 TMPL_FILE_NAME //当前操作的默认模版名(含路径) WEB_PUBLIC_URL //网站公共目录 APP_PUBLIC_URL //项目公共模版目录 预定义常量WEB_LOG_ERROR=0 // 错误日志类型 WEB_LOG_DEBUG=1 // 调试日志类型 SQL_LOG_DEBUG=2 // SQL 日志类型 SYSTEM_LOG=0 // 系统方式记录日志 MAIL_LOG=1 // 邮件方式记录日志 TCP_LOG=2 // TCP 方式记录日志 FILE_LOG=3 // 文件方式记录日志 DATA_TYPE_OBJ=1 // 对象方式返回 DATA_TYPE_ARRAY=0 // 数组方式返回 URL_COMMON=0 // 普通模式 URL URL_PATHINFO=1 // PATHINFO URL URL_REWRITE=2 // REWRITE URL HAS_ONE=1 // HAS_ONE 关联定义 BELONGS_TO=2 // BELONGS_TO 关联定义 HAS_MANY=3 // HAS_MANY 关联定义 MANY_TO_MANY=4 // MANY_TO_MANY 关联定义 EXISTS_VAILIDATE = 0 // 表单存在字段则验证 MUST_VALIDATE = 1 // 必须验证 VALUE_VAILIDATE = 2 // 表单值不为空则验证
ThinkPHP的易忽视点小结相关推荐
- python基础教程:易忽视知识点小结
这篇文章主要介绍了Python易忽视知识点,实例分析了Python中容易被忽视的常见操作技巧,需要的朋友可以参考下 这里记录Python中容易被忽视的小问题 一.input(-)和raw_input( ...
- thinkphp对接易联云打印
thinkphp对接易联云打印 易联云官网上的文档有php的sdk 也有引用方式的说明 但是加载到tp内的时候引入Autoloader.php会提示文件未找到,原因是sdk注册了命名空间APP 如果重 ...
- 最易忽视的肾虚4件事
肾是人的"先天之本",如果把人体比喻成一棵大树,肾就是树根,吸收.传递营养充足,大树才能枝繁叶茂.肾虚了,可能引起各种健康问题. 然而,在现实中,人们常常会夸大肾虚,很多人把出汗多 ...
- 研发各阶段易犯错误小结
题记:以下是研发各阶段易出问题的小结,越小细节,越容易犯错误.需要多注意! 一.需求方面 1.需求文档 真正领会客户需求,形成指导开发人员的需求文档或者需求规格说明书是非常难的一件事情. 2.需求文档 ...
- 简单而易忽视的http 404
某个一个请求总是报404,看了整个代码没找到原因. 仔细看一下postman发现是post请求用的get选项,很简单但是多次切换get和post也容易忽视.
- ThinkPHP中的快捷函数小结
U() 制作url地址的快捷函数 C(名称) 获得配置变量(convertion.php config.php)信息 C(名称,值) 设置配置变量信息 L() 获得语言变量信息 E() 给页面输出错误 ...
- JAVA中小细节(易忽视和易错点)
在为一个long类型的变量赋值时,所赋值的后面要加上一个字母L(l),说明赋值为long类型,但如果赋值未超出int取值范围,可以忽略. 在为一个float类型的变量赋值时,所赋值的后面要加上一个字F ...
- 简述一下索引的匹配原则_【进阶之路】索引中一些易忽视的点
导言 大家好,我是练习java两年半时间的南橘,下面是我的微信,需要之前的导图或者想互相交流经验的小伙伴可以一起互相交流哦. 这是这篇文章的思维导图,因为用的是免费版的软件,所以有不少水印,需要的可以 ...
- 【OpenCV】IplImage和char *的相互转换,以及极易忽视的细节
OpenCV中IplImage和单字节char*的相互转换 从 IplImage到 char* : data = image->imageData //对齐的图像数据或者data = image ...
最新文章
- AWS — Nitro System
- python自学书籍顺序-2018最全各阶段Python学习书籍汇总!
- 正则表达式。部分实例及说明(摘)
- Objective-C 语法
- c语言高低位拷贝_C语言中的大小端转换与高低位颠倒
- RegCloseKey函数
- 【优化算法】头脑风暴优化算法(BSO)【含Matlab源码 497期】
- AQM-8125空气质量监测系统
- Unity 改变鼠标指针的方法
- table表单的修改和保存
- win10开机慢黑屏时间长
- CCF关于NOIP2018获奖证书发放的公告
- Gram矩阵及其实际含义
- 第一次申请苹果的公司开发者账号
- Mac系统打开命令行终端及查看操作系统版本号的方法
- ECMAScript 6 基础教程-姜威-专题视频课程
- Linux环境搭建spark3 yarn模式
- c#代码实现打印机打印文件
- 总结 db visualizer连接GBase8s数据库报-908错误解决方法
- 【Mixup】《Mixup:Beyond Empirical Risk Minimization》
热门文章
- 图解用NetCat连接远程端口
- Java 三大框架集成项目结构
- 案例实作图解.Net Entity Framework 教程
- BurpSuite pro v2.0.11版
- 医院信息化建设历程(5)互联互通的数字化医院阶段
- 我爱Java系列---【登录案例】
- jquery地址栏链接与a标签链接匹配添加样式!
- settings.xml 文件配置
- pageX/Y, offset(), position(), scrollTop(), screenX/Y, clientX/Y, pageX/Y
- ubuntu u盘挂载及开机自动挂载 硬盘剩余空间挂载