thinkPHP3.2.3使用过程中遇到的问题收集

1、switch标签里变量不要带$符号;如:

<switch name="order_details['status']">
       <case value="1">支付确认中</case>
       <case value="2">已成交</case>
       <default />已关闭
</switch>

2、数组在模板中输出乱码:嵌套错了也会乱码;

3、上传多张图片时,下面设置会导致始终只有一张图片上传成功的BUG,原因是图片重名,后面的图片会覆盖前面的图片,造成丢图片的假象。

$upload->saveName  = 'time';
意思是用time()生成一个时间戳重命名所有待上传图片,这里多张图片用了同一个时间戳来命名,所以才出现了上面描述的BUG。

解决办法:

$upload->saveName  = array('uniqid', ''); //系统默认,也可以直接把上面的设置注释掉即可

4、生成唯一字符串

md5(uniqid(rand(), TRUE)); //QQ登录签名用法

5、项目需要多数据库连接时,因为库的表前缀不同,导致框架无法自动切换前缀查询失败,解决办法:

找到:\ThinkPHP\Library\Think\Model.class.php 第90行处,加入条件分支即可。

参考网址:http://www.thinkphp.cn/topic/10370.html

}elseif($this->connection){
            $config = C($this->connection);
            $this->tablePrefix = isset($config['DB_PREFIX'])?$config['DB_PREFIX']:'';
}


6、getField('id,name',  true),取字段如果想取到整列的结果,第一个字段必须是主索引或唯一索引字段才能取到整列。

7、遇到的一个坑:项目是分多模块的,每个模块都有独立的模型层,在做服务层时,涉及到用D函数调用数据模型,而D函数默认是调用当前模块下的模型,服务层又被各模块调用的,如果D函数不指定模型路径很容易造成模型混乱,所以最好带上模型相对路径,如D('Api/User',)

8、模板里没必要写这种形式{:U('/user/realname')} ,直接写/user/realname

9、$this->display('Wechat/welcome');  //display里建议还是把路径加上,解决大小写访问时的出错

10、where的复杂用法:

$where['admin_id|admin_id|admin_id'] = [session('admin.id'), 0, '', '_multi' => true]; //相当于 (admin_id=xxx or admin_id='0' or admin_id='')
$where['is_investor'] = 1;//接下来继续,相当于(admin_id=xxx or admin_id='0' or admin_id='') and (is_investor=1)

11、分页传参问题:当表单中有数组表单提交时,分页链接无法带回数组参数,如按多个标签搜索会员时,分页就出BUG,解决办法是:将数组表单转换成字符串,用分隔符隔开再传参

12、在做圣诞节人脸融合活动时,遇到图片压缩的坑:

$image = new \Think\Image();
$image->open($thumb_path);
$image->thumb(1080, 1080)->save($thumb_path, 'jpg', 90); //这里如果不带jpg参数,后面那个图片质量参数不会起作用




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值