• laravel-admin 自定义导出表单


    官方导出文档

    laravel-admin自带的导出excel会导出与此模型关联的其他数据。所以参考官方文档调整代码

    文章表:id,title,user_id

    用户表:id,username

    //文章模型关联用户
        public function user(){
            return $this->belongsTo(User::class, 'user_id', 'id');
        }
    
     
    //ExcelExporter.php
    <?php
    namespace AppAdminExtensions;
    
    use EncoreAdminGrid;
    use EncoreAdminGridExportersAbstractExporter;
    use MaatwebsiteExcelFacadesExcel;
    
    class ExcelExpoter extends AbstractExporter
    {
        protected $head = [];
        protected $body = [];
        public function setAttr($head, $body){
            $this->head = $head;
            $this->body = $body;
        }
    
        public function export()
        {
            Excel::create('Filename', function($excel) {
                $excel->sheet('Sheetname', function($sheet) {
                    // 这段逻辑是从表格数据中取出需要导出的字段
                    $head = $this->head;
                    $body = $this->body;
                    $bodyRows = collect($this->getData())->map(function ($item)use($body) {
                        foreach ($body as $keyName){
                            $arr[] = array_get($item, $keyName);
                        }
                        return $arr;
                    });
                    $rows = collect([$head])->merge($bodyRows);
                    $sheet->rows($rows);
                });
            })->export('xls');
        }
    }

    使用方法:

                $excel = new ExcelExpoter();
                $excel->setAttr(['id', '标题', '作者'], ['id', 'title', 'user.username']);
                $grid->exporter($excel);
  • 相关阅读:
    linux网桥浅析
    linux slub分配器浅析
    vs2015 C# WinForm 使用皮肤 美化窗体
    枚举可以直接赋值给int
    LINK : fatal error LNK1000: Internal error during IncrBuildImage
    map映射类
    map
    time
    int to string
    eclipse
  • 原文地址:https://www.cnblogs.com/lxwphp/p/9804301.html
Copyright © 2020-2023  润新知