好久没写博客了,最近刚到青岛这边找工作,有一大堆的事情,加上第一个项目比较赶,一直也没什么时间更新下博客。难得今天有时间,就把最近用TP3.2碰到的一些问题给总结一些,做个记录吧。
1、tp的<if condition="$status lt 3">--->不能写成<3,要用比较运算符来写
众所周知,有时候我们需要在视图中判断传过来的值,然后觉得视图渲染的内容。<if condition="">就是我们的首选内容,只不过有时候需要用"lt","gt"来代替大于号和小于号
2、TP的上传图片
$upload = new \Think\Upload();
//设置文件信息,上传的文件类型
$upload->mimes=array('image/png','image/gif','image/jpeg');
//设置不允许自动生成子目录
$upload->autoSub=false;
$upload->rootPath="./public/";
$upload->savePath="product/";
//保存图片
$imageRe = $upload->upload();
if($imageRe){
//图片名称写数据库表productimage
$productimage = M("Productimage");
foreach($imageRe as $v)
{
$imagename = $v['savename'];
$productimage->data(array('imagename'=>$imagename,'productid'=>$id))->add();
}
}
$this->success("添加成功",__APP__.'/Product/oper');
}else{
$this->error("添加失败",__APP__.'/Product/add');
}
(PS:如果success或者error方面的跳转页面会继续加载的模板的话,就需要在下面加个exit来组织一下
例如:
$this->success("添加成功",__APP__.'/Product/oper');
exit;
)3、TP的分页样式,可在控制器修改:
$Page = new \Think\Page($count,10);// 实例化分页类 传入总记录数和每页显示的记录数
$Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$Page->setConfig('last', '末页');
$Page->setConfig('first', '首页');
$Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
$Page->lastSuffix = false;//最后一页不显示为总页数
$Page = new \Think\Page($count,10);// 实例化分页类 传入总记录数和每页显示的记录数
$Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$Page->setConfig('last', '末页');
$Page->setConfig('first', '首页');
$Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
$Page->lastSuffix = false;//最后一页不显示为总页数
(PS:这个是在控制器更改分页样式的,因为有时候Tp自带的分页总是那么差强人意)
4、TP在插入数据库时,在用Excel导入数据的时候,碰到11位的数字都变成2147483647,原因是int类型的数据,最大只能到2147483647,所以11位的都变成了2147483647,
解决办法:
把字段类型由int改为bigint,就可以了.
我出现的问题:用(int)$phone转换字符类型后,出现数值变成了2147483647
解决办法:
把字段类型由int改为bigint,就可以了.
我出现的问题:用(int)$phone转换字符类型后,出现数值变成了2147483647
5、在TP中想让字段的值自增或自减:
自增:
$user->where->setInc('status'); --->status状态自增1
$user->where->setInc('status','3'); --->status状态自增3
自减:
$user->where->setDec('status'); --->status状态自减1
$user->where->setDec('status','3'); --->status状态自减3
自增:
$user->where->setInc('status'); --->status状态自增1
$user->where->setInc('status','3'); --->status状态自增3
自减:
$user->where->setDec('status'); --->status状态自减1
$user->where->setDec('status','3'); --->status状态自减3
(PS:这连个函数在有些场景下是很好用的,比如登录后金币自动+10等)
6、TP框架的add方法返回插入数据的id值!!!!!!
注意,返回的不是受影响行数,而是id
注意,返回的不是受影响行数,而是id
(PS:这个是我用laravel用习惯带来的坑,习惯性的认为新增会返回布尔值吧,结果竟然是id值!!!!)
7、TP在视图上把时间戳转化为格式化日期:{$a|date="Y-m-d H:i:s",###}即可(小技巧)