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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
PHP如何得到当前页和上一页的地址?
Nov 27 PHP
转PHP手册及PHP编程标准
Dec 17 PHP
PHP网站基础优化方法小结
Sep 29 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
php中socket通信机制实例详解
Jan 03 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
php array_keys 返回数组的键名
Oct 25 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
Yii 框架使用Forms操作详解
May 18 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查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP多进程编程实例
2014/10/15 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python抓取网页内容示例分享
2014/02/24 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
python制作抖音代码舞
2019/04/07 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
用Python开发app后端有优势吗
2020/06/29 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
公司节能减排倡议书
2014/05/14 职场文书
环保倡议书50字
2014/05/15 职场文书
行政复议答复书
2015/07/01 职场文书
停车场管理制度范本
2015/08/05 职场文书