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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
PHP 中文乱码解决办法总结分析
Jul 30 PHP
PHP面向对象概念
Nov 06 PHP
支持中文的php加密解密类代码
Nov 27 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
php批量删除超链接的实现方法
Oct 19 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP中OpenSSL加密问题整理
Dec 14 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网站地图生成类示例
2014/01/13 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Django Highcharts制作图表
2016/08/27 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
联想中国官方商城:Lenovo China
2017/10/18 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
写给女生的道歉信
2014/01/08 职场文书
企业项目策划书
2014/01/11 职场文书
欢迎新生标语2015
2015/07/16 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL