Laravel Maat网站从版本 2 到版本 3 的升级代码

Laravel Maatwebsite upgrade code from version 2 to version 3

提问人:user2685743 提问时间:10/17/2023 更新时间:10/17/2023 访问量:16

问:

我正在将 Laravel 应用程序从版本 8 升级到 9。我已经设法升级了大部分内容,但在升级 Maatwebsite Excel 插件时遇到了问题。我有以下代码,我需要知道将其升级到版本 3 的最简单方法。我有很多这样的代码函数,这样做将是一项繁琐的任务。

public function downloadFullMml(Request $request)
    {
        $array = [];
        $jobid = $request->jobid;
        $meta = $request->meta;
        $jmml = '';
        $job = '';
    $hvcount = 0;
        if($meta==1)
        {
                $headings = ["id","MML No","Type","Category","Sub Category","Description","UOM","Price","Qunatity","Total"];
                array_push($array,$headings);
                $items = DB::table('job_mml')
                        ->selectRaw('job_mml.mmlno as jobmmlid,mml.unitprice,items.*,categories.highvalue as hv,categories.name as catname,subcategories.name as subcat,makes.name as make,description.name as description,
                        mml.quantity as mmlquantity,mml.quantity*mml.unitprice as total')
            ->leftjoin('jobs','jobs.id','=','job_mml.jobnumber')
                        ->leftjoin('mml','mml.mmlid','=','job_mml.id')
                        ->leftjoin('items','items.id','=','mml.item')
                        ->leftjoin('categories','categories.id','=','items.category_id')
                        ->leftjoin('subcategories','subcategories.id','=','items.subcatid')
                        ->leftjoin('makes','makes.id','=','items.make')
                        ->leftjoin('description','description.id','=','items.description')
            ->orderBy('jobmmlid')
                        ->where('jobs.id',$jobid)->get();

                        $job = Job::find($jobid);
                        $arrx = [];
            

            $arry = []; 
                        array_push($arry,'Job Name');
                        array_push($arry,$job->jobname);
                        array_push($arrx,$arry);
                        $arry = [];
                        array_push($arry,'Job Number');
                        array_push($arry,$job->jobnumber);
                        array_push($arrx,$arry);

                        $arry = [];
                        array_push($arry,'Job Value');
                        array_push($arry,number_format($job->value,2));
                        array_push($arrx,$arry);

            $arry = [];
                        array_push($arry,'Currency');
                        array_push($arry,$job->currency);
                        array_push($arrx,$arry);

                }
                else
                {
                        $headings = ["id","MML No","Type","Category","Sub Category","Description","UOM","Price","Qunatity","Total"];
                array_push($array,$headings);
                $items = DB::table('add_job_mml')
                        ->selectRaw('add_job_mml.mmlno as jobmmlid,addmml.unitprice,items.*,categories.highvalue as hv,categories.name as catname,subcategories.name as subcat,makes.name as make,description.name as description,
                        addmml.quantity as mmlquantity,addmml.quantity*addmml.unitprice as total')
            ->leftjoin('additional_jobs','additional_jobs.id','=','add_job_mml.jobnumber')
                        ->leftjoin('addmml','addmml.mmlid','=','add_job_mml.id')
                        ->leftjoin('items','items.id','=','addmml.item')
                        ->leftjoin('categories','categories.id','=','items.category_id')
                        ->leftjoin('subcategories','subcategories.id','=','items.subcatid')
                        ->leftjoin('makes','makes.id','=','items.make')
                        ->leftjoin('description','description.id','=','items.description')
            ->orderBy('jobmmlid')
                        ->where('additional_jobs.id',$jobid)->get();

                        $job = AdditionalJob::find($jobid);
                        $arrx = [];

        
                $arry = [];
                        array_push($arry,'Job Name');
                        array_push($arry,Job::find($job->parent_job)->jobname);
                        array_push($arrx,$arry);
                        $arry = [];
                        array_push($arry,'Job Number');
                        array_push($arry,$job->jobnumber);
                        array_push($arrx,$arry);
                        $arry = [];
                        array_push($arry,'Job Value');
                        array_push($arry,number_format($job->value,2));
                        array_push($arrx,$arry);

            $arry = [];
                        array_push($arry,'Currency');
                        array_push($arry,$job->currency);
                        array_push($arrx,$arry);
    
                }

                //print_r($items);exit;
                foreach($items as $item)
                {
                        $arr = [];
                        array_push($arr,$item->id);
            array_push($arr,$item->jobmmlid);
                        array_push($arr,$item->type);
                        array_push($arr,$item->catname);
                        array_push($arr,$item->subcat);
                        array_push($arr,$item->description);
                        array_push($arr,$item->uom);
                        array_push($arr,$item->unitprice);
                        array_push($arr,$item->mmlquantity);
                        array_push($arr,$item->total);
                        array_push($array,$arr);
            if($item->hv==1)
                $hvcount=$hvcount+1;

                }

                Excel::create($job->jobnumber.'_'.'MML_', function($excel) use($array,$hvcount,$arrx) {



                $excel->sheet('sheet1', function($sheet) use($array,$arrx,$hvcount) {

                $sheet->fromArray($arrx);
        $sheet->fromArray($array);
        //$sheet->fromArray($arrlastx);
                $sheet->setAutoFilter();
                $sheet->setHeight(1, 50);

                

        $sheet->cell('B15:B'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('C15:C'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('D15:D'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('E15:E'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('F15:F'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('G15:G'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('H15:H'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });
        $sheet->cell('I15:I'.(14+$hvcount), function($cells) {

                                $cells->setAlignment('left');
                                $cells->setValignment('middle');
                                $cells->setFont(array(
                                'bold'       =>  true
                                ));

                });

                });

                })->download('xlsx');
    }
维尔·拉拉维尔-9 maatwebsite-excel php-8.1

评论

0赞 Coola 10/17/2023
您是否遇到任何可以分享的错误?您是否也查看了升级指南 - 通常插件在文档中有这些内容。如果是,你能分享插件文档的链接吗?

答: 暂无答案