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

时间:2023-03-09 19:26:45
关于thinkphp开发的几种规范(仅限个人)

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

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

或者

$cn['username&status'] = array(session('member.username'),'2','_multi'=>true);
$list = M('FinanceRecord')->where($cn)->order('recordid desc')->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下