laravel-admin 使用经验记录一波 
                                                    
                        
                    
                    
  
                    
                    1. 背景
由于快捷开发,最近一直在使用laravel-admin,陆陆续续也踩了不少坑;
所谓是好记性不如烂笔头,整理一波并记录一下;
首次在Learnku社区发表文章,希望仁兄们多多包含,指点一二
2. 自定义页面的分页样式
发布php artisan vendor:publish --tag=laravel-pagination
路径views/vendor/pagination
默认使用的是tailwind.blade.php,复制bootstrap-4.blade.php替换即可
3. chart图表的使用
composer require laravel-admin-ext/chartjs
php artisan vendor:publish --tag=laravel-admin-chartjs
创建一个view
<h4>近期订单柱状图</h4>
<canvas id="myChart"></canvas>
<script>
    $(function () {
        var ctx = document.getElementById("myChart").getContext('2d');
        let date = "{{ $date }}";
        let dateArr = date.split(',');
        var total = "{{ $total }}";
        var totalArr = total.split(',');
        var myChart = new Chart(ctx, {
            type: 'bar',    // 类型值有line,bar,radar,doughnut,pie
            data: {
                labels: dateArr,    // 横坐标数组
                datasets: [{
                    label: '近期订单成交量',
                    data: totalArr,   // 纵坐标数组
                    backgroundColor: [
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)'
                    ],
                    borderColor: [
                        'rgba(255,99,132,1)',
                        'rgba(54, 162, 235, 1)',
                        'rgba(255, 206, 86, 1)',
                        'rgba(75, 192, 192, 1)',
                        'rgba(153, 102, 255, 1)',
                        'rgba(255, 159, 64, 1)'
                    ],
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    yAxes: [{
                        ticks: {
                            beginAtZero:true
                        }
                    }]
                }
            }
        });
    });
</script>
使用Content::body($content)将数据渲染给view
public function index(Content $content)
{
     $data = $this->orderGraph(7);
     return $content
         ->title('数据看板')
         ->description('Dashboard')
         ->row(view('dashboard')->with([
            'date'  => implode(',', $data[0]), 
            'total' => implode(',', $data[1])
        ]));
}
4. 文件上传
文件上传,使用$form->ignore('file')屏蔽file字段,再用$file = request('file')接收file参数自定义处理
protected function form()
{
    $form->file('file', '导入券码')->required();
    $form->ignore('file');
    // 上传文件,保存到表,并记录file_id
    $form->submitted(function (Form $form) {
        $file = request('file');
        $result = UploadService()::upload($file);
        $form->model()->file_id = $result['file_id'];
    });
    // 通过file_id,分批导入券码
    $form->saved(function (Form $form) {
        FileService::importCsv($form->model()->file_id, (new CodeData())->getTable(), ['code'],
            [['key' => 'code_id', 'val' => $form->model()->id]],
            2, 1000);
    });
    return $form;
}
5. 图片OSS配置
这一部分文档是有详细介绍的,但还是踩了些坑;
laravel不同版本,引入的aliyun-oss 包是不一样的;
这个包也别漏了
composer require "jacobcyl/ali-oss-storage: dev-master"配置
config/filesystems文件'oss' => [ 'driver' => 'oss', 'access_id' => env('OSS_ACCESS_KEY_ID', ''), 'access_key' => env('OSS_ACCESS_KEY_SECRET', ''), 'bucket' => env('OSS_BUCKET'), 'endpoint' => env('OSS_ENDPOINT'), 'ssl' => true, 'isCName' => false, 'debug' => false, ],配置
config/admin文件'upload' => [ 'disk' => 'oss', 'directory' => [ 'image' => 'st/' . date("Ymd", time()), // st是指bucket创建的文件夹目录 'file' => 'files', ], ],
6. 在form方法区别创建和编辑
使用Route::currentRouteName()获取路由名称,根据路由名称做判断
使用form->isCreating()、form->isEditing() 判断
7. 不懂之处
rule()方法生效了,但没页面效果,很不友好,日志也没有
$form->text('name')->rules('required|string|max:20')
本作品采用《CC 协议》,转载必须注明作者和本文链接
          
                    
                    
            
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: