1、之前研究过Laravel的分页,也同时使用layui,虽然可以实现,但是实现的分页很丑,在整个过程中,对于,常用方法的封装可以说是又重新进行了温习,因为之前写一写东西都是直接在控制器中直接写,导致很多代码都是 重复,封装可以将常用代码进行封装,几段代码来实现;
2、在列表中添加与编辑进行合并,之前一直都是采用独立,没有采用过保存及编辑进行合并,这两天通过学习,也慢慢的学习这样的方式,其方式的好处在于“页面可以进一步的减少、代码的量进行减少、重复代码将很少存在”;
3、数据库问题,之前使用哦TP写过一个统计系统,现在为止数据已经达到了3万条的时候,导致了页面打开慢的问题,后期没有办法从新将列表页面更改为了layui的动态加载其在一定的意义上来说是解决了一部分的响应速度问题,其实并没有最终解决,而且其在大屏幕的显示器中只显示一半,在美观上并不达标;
今天的索引给了我很大的帮助,在数据表设计中我并没有设置任何索引,在数据量大后,造成的数据库查询数据时慢,后期可以更具今天所讲内容对相应的表进行索引设置;
附上在学习过程 github 代码仓及码云代码地址:
https://github.com/qingyuxiaoxiao/qingyu.git
https://gitee.com/daogujin/qingyu.git
demo 地址:
demo.nmgseozx.com/admin/login
分页封装代码附上:
<?php namespace App\Providers; use Illuminate\Support\Facades\DB; use Illuminate\Support\ServiceProvider; use Illuminate\Database\Query\Builder as QueryBuilder; class DBServiceProvider extends ServiceProvider { public function boot() { QueryBuilder::macro('item',function (){ $data = $this->first(); $data = (array)$data; return $data; }); //返回数组列表 QueryBuilder::macro('lists',function (){ $data = $this->get()->toArray(); $result = []; foreach($data as $val){ $result[] = (array)$val; } return $result; }); //自定义索引 QueryBuilder::macro('cates',function ($index){ $lists = $this->get()->toArray(); $res = []; foreach ($lists as $value){ $res[$value->$index] = (array)$value; } return $res; }); //分页方法 QueryBuilder::macro('pages',function ($perPage = 15, $columns = ['*'],$pageName='page', $page = null){ $lists = []; $pageobj = $this->paginate($perPage,$columns,$pageName,$page); $temp_list = $pageobj->items(); foreach ($temp_list as $val) { $lists[] = (array)$val; } return array('total'=>$pageobj->total(),'lists'=>$lists); }); } }
感谢老师的细心详细讲解,尤其是在讲封装及数据库方面,给了我很大的帮助;