列表渲染databale

1. 首先在渲染列表页面  当压面加载时然后发送ajax请求到后台哪去参数

 // <!--第三步:初始化Datatables-->
    $(document).ready( function () {
        $('#table_id_example').DataTable({
            serverSide:true,
            "ajax": " http://localhost/2.23zuoye/public/index.php/index/index/indexs",
            "columns": [
                {"data": "id"},
                {"data": "title"},
                {"data": "name"},
                {"data": "desn"},
            ]
        });
          // 删除
        datatable.on('draw',function () {
            // 删除按钮点击事件
            $('.label-danger').click(function () {
                // 获取id值
                var  id=$(this).parent().prev().prev().prev().prev().text();
                // var  urls=$(this).attr('href');
                // var  url= urls+"/"+id;
                $.ajax({
                    url:"{{route('admin.delete')}}",
                    type:"POST",
                    data:{
                        id:id,
                        '_token':"{{csrf_token()}}"
                    }
                }).then(({success,msg})=>{
                    layer.msg('删除成功..', {icon:1},()=>{
                        // 刷新
                        location.reload();
                    });
                });

                return false;
            })
        }) } );

2.后台接收到参数根据  然后根据查询到的返回参数

 

 public function indexs(Request $request){
//        $data=Db::table('zfw_articles')->select();
//        获取到分页开始的位置
        $start=$request->get('start');
//        获取到分页结束的位置
        $length=$request->get('length');
//        获取到搜索的条件
        $search=$request->get('search.value');
//        Illuminate\Support\Facades\Redis
        $data=Db::table('zfw_articles')->where('title','like',"%$search%")->limit($start,$length)->select();
        //        查询出来的数据存入redis里面
// 当服务器性能达到极致的时候,可以使用服务器集群进行提高网站的整体性能,那么在服务器集群中,  有一台服务器充当调度者的角色,用户的所以请求都由他来接受,调度者根据每台服务器的情况进行请求分配服务器处理
// 前端
        Cache::store('redis')->set('data',$data);
//        取出redis里存储的搜索条件
        Cache::get('data');
        foreach ($data as $key=>&$val){
                $val['title'] =str_replace($search, "<font style='color: #ff0000'>$search</font>",$val['title']);
        }
        return json(['code'=>200,'msg'=>'查询成功','data'=>$data]);
    }

 3.实现exel的导入导出

    public function excel()
    {
        //导出
        //##########################################################################
        $list = Db::name("book")->select();
        $file_name = date('Y-m-d_His') . '.xls';
        $path = dirname(__FILE__);
        Loader::import('PHPExcel.Classes.PHPExcel');
        Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
// 伪静态,防掉链处理,减少http请求   数据库  表的设计,存储引擎,字段的设置,分库分表,sql查询优化
        $PHPExcel = new \PHPExcel();
        // print_r($PHPExcel);die;
        $PHPSheet = $PHPExcel->getActiveSheet();
        $PHPSheet->setTitle("品牌");
        $PHPSheet->setCellValue("A1", "ID");
        $PHPSheet->setCellValue("B1", "品牌名称");
        $PHPSheet->setCellValue("C1", "品牌内容");
        $PHPSheet->setCellValue("D1", "编号");
        $i = 2;
        foreach ($list as $key => $value) {
            $PHPSheet->setCellValue('A' . $i, '' . $value['id']);
            $PHPSheet->setCellValue('B' . $i, '' . $value['name']);
            $PHPSheet->setCellValue('C' . $i, '' . $value['text']);
            $PHPSheet->setCellValue('D' . $i, '' . $value['srot']);
            $i++;
        }
        $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, "Excel2007");
        header('Content-Disposition: attachment;filename=' . $file_name);
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        $PHPWriter->save("php://output");
    }
    public function insert_excel()
    {
        Loader::import('PHPExcel.Classes.PHPExcel');
        Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
        Loader::import('PHPExcel.Classes.PHPExcel.Reader.Excel5');
        $PHPExcel = new \PHPExcel();
        //获取表单上传文件
        $file = request()->file('excel');

        // echo function_exists($connect->validate);die;
        $info = $file->move(ROOT_PATH . 'public' . DS . 'excel');
        if ($info) {
            $exclePath = $info->getSaveName();
            //获取文件名
            $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;
            //上传文件的地址
            $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
            $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');
            //加载文件内容,编码utf-8
            $excel_array=$obj_PHPExcel->getsheet(0)->toArray();
            // print_r($excel_array);die;
            //转换为数组格式
            array_shift($excel_array);
            //删除第一个数组(标题);
            $city = [];
            $error_infos = [];
            $login_info = [];
            $i=0;
            // $j=2;
            foreach($excel_array as $k=>$v) {

                $sn = Db::name('bookst')->where('id',$v[0])->find();
                if ($sn) {
                    $j = $k+2;
                    $error_infos[$k] = "第{$j}条代理商编号已存在";
                    $i++;
                    continue;
                }
                $city[$k]['id']     = $v[0];
                $city[$k]['name']     = $v[1];
                $city[$k]['text']     = $v[2];
                $city[$k]['srot'] = $v[3];
                $i++;
            }
            // print_r($city);die;
            $success = Db::name('bookst')->insertAll($city);
            $error=$i-$success;
            $error_infos['msg'] = "总{$i}条,成功{$success}条,失败{$error}条。";

            if ($i > 0 && $success > 0) {
                $this->success('导入成功');
            }else{
                $this->error('导入失败');
            }
            //批量插入数据
        } else {
            echo $file->getError();
        }
    }

 

 

4.小程序获取

 public function lists(){
//        code值
        $code=input('code');
//        用户名
        $name=input('name');
//            appid
        $appid="wxeb284243ebf4674f";
//        秘钥
        $secret="e3e7a8ef60ee32842ef1e6313ebadfb0";
        $lot="https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
        $lots=json_decode(file_get_contents($lot),true);

        $kot=[
          'name'=>$name,
          'appid'=>$lots['openid'],
            'session_key'=>$lots['session_key'],
        ];
//        查询该用户是否存在
        $bet=Db::table('lots')->where('appid',$lots['openid'])->find();

        if ($bet){
            return json(['data'=>$bet,'msg'=>'success','code'=>200]);
        }

        if (Db::table('lots')->insert($kot,true)){
//            获取刚刚插入的id
            $kot['id']=Db::getLastInsID();
            return json(['data'=>$kot,'msg'=>'success','code'=>200]);
        }else{
            return json(['data'=>$kot,'msg'=>'success','code'=>400]);
        }
//        dump($lots);
    }

 又拍云

      $serviceName = 'jerry-min';
                //操作员账号
                $operator = 'jerry';
                //操作员密码
                $password = 'kqYcQma8K5FGDyX9NLM6gyYohcePRdWD';
                //要上传到哪个目录下
                $directory = 'text/' . rand(1,10) . '.test.upcdn.net';
                //要上传的文件的绝对路径(请换成你电脑上一个图片文件的路径)
                $uploadFilePath = "./uploads/".$data;

                //使用又拍云php-sdk上传文件非常方便,很new一个config对象
                $serviceConfig = new Config($serviceName, $operator, $password);
                $client = new Upyun($serviceConfig);
                $fp = fopen($uploadFilePath, 'r');
                $client->write($directory ,$fp);

七牛云

            $ak="i823JQs3EZMXhqg3LBlOTwDD5iqVZXZmqLsCUqIs";
            $sk="uSVT59ZIn7hOHJV-UcLo4W-A5pQaREDirR_F7JnF";
            $uploadMgr = new UploadManager();
            $auth = new Auth($ak,$sk);
            $token = $auth->uploadToken('jmin');
            list($ret, $error) = $uploadMgr->putFile($token, time(), '.'.$data);

 

posted @ 2021-03-16 09:39  jerry_min  阅读(129)  评论(0)    收藏  举报