网站首页 php及前端 使用tp5.1的一些小小注意事项
使用tp5.1的一些小小注意事项
编辑时间:2019-03-11 作者:金满斗 浏览量:65 来源:原创

1:tp5.1的模型中,如无外接关联最好转数组

这几天一直两边跑,代码一般都是git同步。

上次在这笔记本上就发现写一个软件时,商品分类不出来,出错,而在店铺那边有很好,一样的代码,当时以为是环境的问题,没管它。今天再次出现,发现是模型里的查询数据没转化为数组,到递归那边就不正常了。

上面的代码有点问题,因为是要调试,就把缓存前的取反逻辑取消了。

下面是调用的平级分类代码,也放上来。


/*递归无限极分类,获取平级数组。level表示层数 */
private static function levelsort($data,$pid=0,$level=0){
$arr = [];
foreach ($data as $v) {
if($v['pid']===$pid){
$v['level']= $level;
$arr[]=$v;
$arr =array_merge($arr,self::levelsort($data,$v['id'],$level+1));
}
}
return $arr;
}

2:Cache::remember 函数一定要保证能100%的返回值

手册里的


不存在则写入缓存数据后返回

Cache::remember('name',function(){ return time(); });
我经常喜欢这么用,返回的时候判断下,有就返回,没有就返回个空,这是错误的写法,你就是返回了空缓存那边还是会缓存个空文本的,对于要判断的,还是


先get,再有就set好,不能偷懒.


对应layui表里需要的js对象的传递.这里直接上代码吧.

后台的


$model = SalesModel::find($id);
$list = $model->salesDetails->toArray(); //取出关联详单
$list = json_encode($list );
$this->assign(compact('model','list'));

前台js 这边的.



var lstdata = {$list|raw};

table.render({
elem: '#saleseditTable',
data:lstdata,
cellMinWidth: 100,


后面的省略,懂的一看就懂了.


来说两句吧