分享使用thinkphp的心得和技巧总结(三)_ThinkPHP_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • ThinkPHP

    当前位置:主页 > 网络编程 > ThinkPHP >

    分享使用thinkphp的心得和技巧总结(三)

    时间:2019-07-10|栏目:ThinkPHP|点击:
  • add方法返回主键(id)的值
    在往数据表中添加数据时调用add方法,默认返回值就是刚添加的id值,就不用再去查询了.

    save方法返回值的判断
    在修改数据时,如果修改成功返回的是1,不成功则是0,如果没用做任何的修改就保存了,那么返回值还是0.

    查询后置方法详解
    如_after_select,_after_insert,_after_update,_after_delete,_after_find等
    巧妙地利用这些方法可以简化开发
    用_after_select(&$result,$options)举例:
    参数:$result,这是select出的结果数组。注意这里是一个引用传参,也就是说我们可以直接改变传递过来的值而不需要返回
    $options,这是查询的条件,也就是where()里面的条件
    假如你查询出的数据有time这一字段,并且是以int型保存的,那么可以在这个方法里进行时间格式化的操作

        protected function  _after_select(&$result,$options)  
           foreach($result as $key=>$value){  
                 $result[$key]['time'] = date('Y-m-d H:i:s', $value['time']);  
           }  
        }

    这样就不需要每次在模板上显示的时候,再用函数来处理了
    同样地,可以用_after_insert来代替关联操作,在新增完一条数据后再根据参数更新一些关联的数据
    当然,除了后置方法,还有前置方法。可以用来代替一些复杂的数据验证或者进行数据的预处理,类似于自动完成和自动验证


        protected function _before_insert(&$data,$options) {  
                //对新增前的数据进行处理  
                foreach ($data as $key=>$value){  
                    $value['status']   =   1;//类似于自动完成  
                    if($value['age'] > 100){//类似于自动验证  
                          return false;  
                    }  
                }  
            }

    最后,有几点需要注意的:1,这些方法都是必须写在model里面的
    2,这些方法所接收的参数,有些是引用传参,有些是传值,得注意区分。具体可参考手册
    3,在方法里不需要返回值。调用这些方法的地方,并没有用变量来接收处理结果,所以返回值是没有意义的

    打印sql语句
    $User = D('User');
    $User->select();
    echo $User->getLastSql();或者echo $User->_sql();
    获取最后执行的sql语句,方便查看调试

    跨模板主题调用模板
    假如Tpl下有new主题,该主题下有User文件夹,文件夹下有index.html
    你当前的模板主题是Tpl下的default,那么可以用$this->display('new:User:index');
    或者用全路径输出$this->display('./Tpl/new/User/index.html');

    路由规则^符号的使用
    这个符号在手册中没有提及,但是作用却不可忽视。
    用法:'user/^getlist|tag' => 'user/index'
    作用:在user模块中,除了getlist和tag方法,其他存在的方法全部指向index方法。参数之间用|间隔
    这样可以屏蔽一些不想让用户访问到但是又必须定义成public的方法

    上一篇:ThinkPHP的CURD易忽视点小结

    栏    目:ThinkPHP

    下一篇:thinkphp配置连接的数据库 - Thinkphp

    本文标题:分享使用thinkphp的心得和技巧总结(三)

    本文地址:http://www.jh-floor.com/wangluobiancheng/ThinkPHP/2263.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号