关于thinkphp开发的几种规范(仅限个人)

一、只要设计到where查询语句,无论是增删改查

$cn[‘username‘] = session(‘member.username‘);
$cn[‘itemid‘] = $itemid;
$item =  M(‘Buy‘)->where($cn)->find();

 或者

$cn = array(session(‘member.username‘),‘2‘,‘_multi‘=>true);
$list = M(‘FinanceRecord‘)->where($cn)->select();

a.小于两个或者两个用下边的!超过2个用上边的。
b.这里有个小东西,就是list是列表,即select() 而,item是对象,即find();
c.还有$cn请记住这种写法!

 

二、关于保存和添加

$ds[‘moneyremain‘] = 0.00;
$ds[‘status‘] = 4;
$ds[‘edittime‘] = NOW_TIME;
$step2 = M(‘Buy‘)->where($cn)->save($ds);//添加为add($ds),当然无where

如果是批量添加,则必须用批量方式进行添加

$ds[] = array(
                   ‘usernameout‘=>$usernameout,
                   ‘usernamein‘=>$usernamein,
                   ‘money‘=>$money,
                   ‘moneypre‘=>M(‘Member‘)->where(‘username=\‘‘.$usernameout.‘\‘‘)->getField(‘money‘),
                   ‘addtime‘=>NOW_TIME,
                   ‘ip‘=>get_client_ip(),
                   ‘typeid‘=>$typeid,
                   ‘catid‘=> $catid,//资金流向
                   ‘itemid‘=>$itemid,
                   ‘title‘=>$cats[$catid].‘:‘.$types[$typeid],
                   ‘status‘=>2,
                   ‘paytime‘=>NOW_TIME,
            );

$ds[] = array(
                   ‘usernameout‘=>$usernameout,
                   ‘usernamein‘=>$usernamein,
                   ‘money‘=>$money,
                   ‘moneypre‘=>M(‘Member‘)->where(‘username=\‘‘.$usernameout.‘\‘‘)->getField(‘money‘),
                   ‘addtime‘=>NOW_TIME,
                   ‘ip‘=>get_client_ip(),
                   ‘typeid‘=>$typeid,
                   ‘catid‘=> $catid,//资金流向
                   ‘itemid‘=>$itemid,
                   ‘title‘=>$cats[$catid].‘:‘.$types[$typeid],
                   ‘status‘=>2,
                   ‘paytime‘=>NOW_TIME,
            );

M(‘FinancePay‘)->addAll($ds);

 

 

 

三、关于另一种保存(更新一个字段或者两个字段,多了用上边那个)

M(‘Order‘)->where($cn)->setField(array(‘status‘=>2, ‘paytime‘=>NOW_TIME));

 

四、关于搜索页面小技巧

前台页面搜索字段为

status=0(所有),status=1,status=2

catid=0(所有),catid=1,catid=2

typeid=0(所有),typeid=1,typeid=2

...

后台处理,get提交

$cn = cn(array(‘status‘,‘catid‘,‘typeid‘));//如果以后还有其他字段还可以添加
$cn[‘username‘] = session(‘member.username‘);
$list = M(‘FinancePay‘)->where($cn)->order(‘payid desc‘)->page($p.‘,10‘)->select();
if($list) {

  foreach($list as $k => $item) {
    $list[$k][‘dstatus‘] = $clang_status[$item[‘status‘]];
  }

}

其中cn函数为

function cn($item) {
    $cn = array();
    foreach($item as $value) {
        $cn[$value] = I(‘get.‘.$value); 
        if(!I(‘get.‘.$value)) unset($cn[$value]);
    }
    return $cn;
}

 

五、关于安全

尽量用数组方式和I()函数,暂时用这两个就可以搞定sql注入问题了

 

六、T(..)函数的作用是输出前台include的真实路径,有的时候模版找不到,可以用这个输出

 

七、语言类配置文件

尽量放到一个lang下

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。