switch标签里变量不要带$符号;如:
支付确认中 已成交 已关闭
2、数组在模板中输出乱码:嵌套错了也会乱码;
上传多张图片时,下面设置会导致始终只有一张图片上传成功的BUG,原因是图片重名,后面的图片会覆盖前面的图片,造成丢图片的假象。
$upload->saveName = 'time';
意思是用time()生成一个时间戳重命名所有待上传图片,这里多张图片用了同一个时间戳来命名,所以才出现了上面描述的BUG。
解决办法:
$upload->saveName = array('uniqid', ''); //系统默认,也可以直接把上面的设置注释掉即可
生成唯一字符串
md5(uniqid(rand(), TRUE)); //QQ登录签名用法
项目需要多数据库连接时,因为库的表前缀不同,导致框架无法自动切换前缀查询失败,解决办法:
找到:\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']:'';}
getField('id,name', true),取字段如果想取到整列的结果,第一个字段必须是主索引或唯一索引字段才能取到整列。
遇到的一个坑:项目是分多模块的,每个模块都有独立的模型层,在做服务层时,涉及到用D函数调用数据模型,而D函数默认是调用当前模块下的模型,服务层又被各模块调用的,如果D函数不指定模型路径很容易造成模型混乱,所以最好带上模型相对路径,如D('Api/User',)
模板里没必要写这种形式{:U('/user/realname')} ,直接写/user/realname
$this->display('Wechat/welcome'); //display里建议还是把路径加上,解决大小写访问时的出错
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)
分页传参问题:当表单中有数组表单提交时,分页链接无法带回数组参数,如按多个标签搜索会员时,分页就出BUG,解决办法是:将数组表单转换成字符串,用分隔符隔开再传参
来源地址:https://blog.csdn.net/m0_71272694/article/details/127470433