ThinkPHP自动完成中使用函数与回调方法实例


Posted in PHP onNovember 29, 2014

本文实例讲述了ThinkPHP自动完成中使用函数与回调方法。分享给大家供大家参考。具体方法如下:

ThinkPHP 自动填充格式如下:

array(填充字段,填充内容[,填充条件][,附加规则])

附加规则,可选,包括:

string:字符串,表示填充内容为字符串(默认)。

function:使用函数,表示填充的内容是一个函数返回值。

callback:使用方法,表示填充的内容是一个当前 Model 的方法返回值。

field:字段,表示填充的内容是一个其他字段的值。

ThinkPHP 自动填充使用函数function

当附加规则使用函数function填充时,表示填充的内容是一个函数返回值,这个函数可以是PHP内置函数或用户自定义函数.

使用函数填充例子:

class UserModel extends Model{   

protected $_auto = array (   

// 对password字段在所有情况下使用md5函数处理   

array('password','md5',3,'function'),   

// 对regdate字段在新增时写入当前时间戳   

array('regdate','time',1,'function'),   

// 对regip字段在新增时写入用户注册IP地址   

array('regip','get_client_ip',1,'function'),   

// 对username字段在新增时使用自定义getName函数   

array('username','get_name',1,'function'),   

);   

}

在上面的例子中,使用的 md5 和 time 为 PHP 内置函数,填充结果为 md5($_POST['password']) 值和 time() 函数值,get_client_ip 和 get_name 为 Common/common.php 自定义函数.

get_name 函数将用户名加上 th_ 前缀,参考如下:

function get_name($name){   

return 'th_'.$name;   

}

如果函数需要参数,则将填充字段作为参数,如上面的 md5 和 get_name 函数填充.

ThinkPHP 自动填充使用方法callback

当使用方法 callback 填充时,表示填充的内容是一个当前 Model 的方法返回值,使用 callback 填充例子:

class UserModel extends Model{   

protected $_auto = array (   

// 对username字段在新增时回调getName方法   

array('username','getName',1,'callback'),   

);   

}

getName方法将用户名加上 th_ 前缀,参考如下:
class UserModel extends Model{   

// 将传入的username加上th_前缀   

function getName(){   

return 'th_'.$_POST['username'];   

}   

}

注:上述例子将 username 字段前自动加上 th_ 前缀而填充到 username 中,仅是为了说明自动填充使用函数或回调方法的用法,可能并无实际生产意义

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
使用PHP会话(Session)实现用户登陆功能
Jun 29 PHP
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
php的zip解压缩类pclzip使用示例
Mar 14 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
PHP程序员的技术成长规划
Mar 25 PHP
Yii框架上传图片用法总结
Mar 28 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
微信推送功能实现方式图文详解
Jul 12 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
Nov 29 #PHP
Sublime里直接运行PHP配置方法
Nov 28 #PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 #PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 #PHP
php的mssql数据库连接类实例
Nov 28 #PHP
smarty中post用法实例
Nov 28 #PHP
smarty简单入门实例
Nov 28 #PHP
You might like
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
js实现弹窗效果
2020/08/09 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python采集博客中上传的QQ截图文件
2014/07/18 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
深入解析神经网络从原理到实现
2019/07/26 Python
pycharm修改file type方式
2019/11/19 Python
Python实现图像的垂直投影示例
2020/01/17 Python
python默认参数调用方法解析
2020/02/09 Python
Python3开发环境搭建详细教程
2020/06/18 Python
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
施工安全标语
2014/06/07 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
机关工会工作总结2015
2015/05/26 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书