实习个人总结(2)
注意:
- 前端只传一些必传的参数,有些值需要后端自行转化
- 对于钱,前端传过来的是以元为单位(float),后端数据库存放的是以分为单位(int),需要进行转化
- 对于time数据,前端传的是ms,数据库中存的是s;date形式的值需要根据time进行转化
- foreach 的使用场景是统一改变数组中的值;而取一项或几项数组中的值,直接使用索引比较快,因此需要完成对于数组的改造
- 查数据库时,需要多少数据就查多少数据;写查询一定要考虑要不要分页,不要一股脑全部查出来
- 比较能转换为int就转为int比,不要直接使用date等类型直接进行比,可以先转换为int形式,比较速度较快;date类型存在数据库后最终格式还是字符串,需要将格式统一后再比较
//此处使用ChronosDate类库进行date->string的转换 $now = ChronosDate::today(); $now->toDateString();
- $this->validate 只适用于表单,不是表单不能使用
- medoo的多表联查主表可以使用别名,注意修改每个查询条件,都需要使用别名
- if、empty、isset三者的区别及使用场景
if:表达式为false、整形 0、浮点型 0.0、null、“”、“ ”、不包含任何元素的数组、false本身 => false,其他的都为true
empty:null,0,0.0,false等,规则基本同if
isset:检测变量是否已声明并且其值不为 null (官方文档原话),当变量未赋值时或为null时=>false,其他情况为true
if、empty的日常使用为判断一个变量(数组)是否为空
isset的使用场景为:假如有一个状态字段,0表示未支付,1表示已支付,此时如果使用 if 或 empty的话,会将0判断为false,但我们在判断这个字段有没有赋值时,需要使用isset
使用:
- array_column 方法可以传入三个参数,包括源数组、需要获取的列、该列的索引,可以用另一个字段给取到的数据主动地添加索引
- medoo框架query可以自定义SQL查询语句,自定义时需要在fetchAll中指定参数,否则执行默认全部读取;自定义SQL时,表名和字段名都需要添加双引号
- if 里面就不要写empty了,两者功能重复
if(empty()) //作用重复 //两者合并使用的场景为: if(!empty()) //一般用于页面的条件搜索场景
- 数组的key不存在时,若是使用索引直接取会报错,需要使用array_key_exists函数查询key是否存在
- Chronos是处理时间/日期的类库
- count查询时加上一个查询字段,防止多表查询时出现错误