登录  /  注册
博主信息
博文 64
粉丝 2
评论 3
访问量 73433
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
分页的封装以及数据库方面的感想
清雨的博客
原创
853人浏览过

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);
        });
    }
}

感谢老师的细心详细讲解,尤其是在讲封装及数据库方面,给了我很大的帮助;

批改老师:WJWJ

批改状态:合格

老师批语:很深刻的感想,写的很好!
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学