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

本文实例讲述了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框架程序设计有所帮助。

时间: 2024-10-29 07:16:18

ThinkPHP自动完成中使用函数与回调方法实例_php实例的相关文章

thinkPHP模板中函数的使用方法示例_php实例

本文实例讲述了thinkPHP模板中函数的使用方法.分享给大家供大家参考,具体如下: 1.php中的方法使用 <?php $var_num = "13966778888"; $str = substr_replace($var_num,'*****',3,5); echo $str; $var_date = time(); $str = date("Y-m-d H:i",$var_date); echo $str; ?> 2.模板中的使用 {sh:$me

thinkPHP框架对接支付宝即时到账接口回调操作示例_php实例

本文实例讲述了thinkPHP框架对接支付宝即时到账接口回调操作.分享给大家供大家参考,具体如下: 关于支付宝即时收款接口的对接过程,很简单,也有很多人发过,我这里就不在啰嗦了,对接完成后,在线支付成功后的回调,相对来说,是个难点,,我重点分享下我的经验. 我在开发二代旅游CMS(http://www.erdaicms.com)的时候,在回调的时候,也花了不少时间. 不管是支付宝接口好是微信支付接口,回调都分为跳转回调和异步通知回调,跳转回调是不保险的,加入客人支付完成后马上把支付页面关闭,没跳

php中ob函数缓冲机制深入理解_php实例

下面就php中ob函数缓冲机制通过文字说明加代码分析的形式给大家展示如下: 对于一个刚刚入门的php程序员来说,php缓冲区是几乎透明的.在他们心目中,一个echo print_r 函数,数据便会'嗖'的一声飞到浏览器上,显示出来.我也一直如此单纯地认为. 其实,在技术的世界里,向来都是由简单到复杂,也许那些技术开发者开始单纯如你我,但是面对残酷的现实,不得不调整策略,以期提高机器运行效率,最后想到了那些让我们赞叹的idea. 说到缓冲,也就是buffer,这里必须要和缓存做一下比较,单纯地比较

Symfony2中被遗弃的getRequest()方法分析_php实例

本文实例分析了Symfony2中被遗弃的getRequest()方法.分享给大家供大家参考,具体如下: 最近使用Symfony时,在NetBeans中发现getRequest()方法被遗弃了: /** * Shortcut to return the request service. * * @return Request * * @deprecated Deprecated since version 2.4, to be removed in 3.0. Ask * Symfony to in

php中url函数介绍及使用示例_php实例

base64_encode - 使用 MIME base64 对数据进行编码base64_encode() returns 使用 base64 对 data 进行编码.设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体.Base64-encoded 数据要比原始数据多占用 33% 左右的空间. 复制代码 代码如下: <?php$str = 'This is an encoded string';// VGhpcyBpcyBhbiBlbmNvZGVkIHN0c

PHP5中虚函数的实现方法分享_php技巧

请看下面的代码: 复制代码 代码如下: <?php class A { public function x() { echo "A::x() was called.\n"; } public function y() { self::x(); echo "A::y() was called.\n"; } public function z() { $this->x(); echo "A::z() was called.\n"; } }

php模拟ping命令(php exec函数的使用方法)_php实例

使用php模拟我们常用的DOS命令ping命令的方法,这里主要用到的是php的内置函数exec来调用系统的ping命令,从而实现ping命令功能的. 复制代码 代码如下: <?php$to_ping='www.phpernote.com';$count=2;$psize=66;echo "正在执行php ping命令,请等待...\n<br><br>";flush();while(1){ echo "<pre>"; exec

PHP中的日期加减方法示例_php实例

几乎所有从事程序开发的程序员都遇到时间处理问题,PHP开发也一样,幸运的是PHP提供了很多关于日期时间函数.只要经常使用这些函数,搭配使用,日期时间处理上就熟能生巧了. 今天要讲的这个例子,需求是这样的.得知某个日期时间, 如:2012-04-25 10:10:00 我要在这个日期时间的基础上加上5个月并返回处理后的日期 结果:2012-04-25 10:10:00 加5个月等于 2012-09-25 10:10:00 这个需求看似简单,但还是有点棘手,因为PHP没有直接提供yyyy-mm-dd

PHP中error_log()函数的使用方法_php技巧

本文实例讲述了PHP中error_log()函数的使用方法.分享给大家供大家参考.具体分析如下: 今天遇到一个问题需要调试,但是只能通过日志打印调试,就用到了error_log这个函数 需要打印的是一台服务器发送到我们服务器的post数据 代码如下:(key和value都打印了) 复制代码 代码如下: if(!empty($_POST) ){  while (list($key, $val) = each($_POST))   {  @error_log("$key => $val&quo