老莫的笔记本  
  
查看: 889|回复: 0

laravel-admin 实际开发 制作手册

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2020-8-5 17:29:44 | 显示全部楼层 |阅读模式

        ========================       ------------------- laravel-admin 专属-----------------------------
       
               
        相关拓展资源:  laravel-admin  https://github.com/jxlwqq/awesom ... master/README-CN.md
         
        laravel-admin 使用手册: https://laravel-admin.org/docs/zh/upgrading
               
        easywechart   使用手册: https://www.easywechat.com/docs/master/overview
       
        Laravel-admin 码的电子商务前后端系统 :                https://learnku.com/articles/31997  
       
        laravel使用OSS          https://github.com/jacobcyl/Aliyun-oss-storage

        --------------制作逻辑-------------------------------------
       
       
        不是先建页面,再写控制器,再写啥啥啥的,他这个 前后台 页面不分家

        1. 如何搞个页面?
               
                1.1         输入命令
                       
                        php artisan admin:make UserController --model=App\Model\User
               
                        php artisan admin:make 表名Controller --model=App\Model\数据表模型名

                1.2        写个路由
               
                        $router->resource('users', UserController::class);
                       
                1.3 把路由加入菜单 http://localhost:8000/admin/auth/menu  打开网址添加菜单,注意 地址写路由的地址
               
                               
               
               
               
       
        2. 关于如何新增 右侧 单条表格的 操作,例如 更新数据
       
                2.1 新建一个控制器
               
                        E:\phpstudy\PHPTutorial\WWW\min\weixin>php artisan admin:action Post\UpWxUserInfo --grid-row --name="更新"
               
                        该控制器位于:App\Admin\Actions\Post;
               
                2.2 把 控制器的操作 添加到行内
               
       
       
       
        3. 修改左侧的 网站名称 图标
                3.1 config/admin.php
               
                        'logo' => '<b>Laravel</b> admin ,
                        'logo-mini' => '<b>La</b>',
               
                3.2  修改登录页的 大文字标题
               
                                 'name' => '牧马科技网站管理后台',
       
       
       
        4. 在laravel-admin 中使用阿里云 oss  
       
                        参考官方上传文档上传篇云端上传:https://laravel-admin.org/docs/z ... F%E4%B8%8A%E4%BC%A0
                       
                       
                        我是这么干的:
                       
                        4.1 点击下面的链接。跳转到官方推荐的地址:
                               
                                        https://github.com/jacobcyl/Aliyun-oss-storage
                       
                        4.2 按照步骤 :
                       
                                        composer require jacobcyl/ali-oss-storage:^2.1
                       
                        4.3 按照步骤写配置app/filesystems.php:
                        'disks'=>[
                                        ...
                                        'oss' => [
                                                'driver'        => 'oss',
                                                'access_id'     => '<Your Aliyun OSS AccessKeyId>',
                                                'access_key'    => '<Your Aliyun OSS AccessKeySecret>',
                                                'bucket'        => '<OSS bucket name>',
                                                'endpoint'      => '<the endpoint of OSS, E.g: oss-cn-hangzhou.aliyuncs.com | custom domain, E.g:img.abc.com>', // OSS 外网节点或自定义外部域名
                                                //'endpoint_internal' => '<internal endpoint [OSS内网节点] 如:oss-cn-shenzhen-internal.aliyuncs.com>', // v2.0.4 新增配置属性,如果为空,则默认使用 endpoint 配置(由于内网上传有点小问题未解决,请大家暂时不要使用内网节点上传,正在与阿里技术沟通中)
                                                'cdnDomain'     => '<CDN domain, cdn域名>', // 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn
                                                'ssl'           => <true|false> // true to use 'https://' and false to use 'http://'. default is false,
                                                'isCName'       => <true|false> // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url
                                                'debug'         => <true|false>
                                        ],
                                        ...
                        ]
                       
                        4.4 按照步骤写配置app/filesystems.php:
                       
                                                'default' => 'oss',
                                               
                        4.5 标明在laravel-admin 中使用config/admin.php:
                               
                                'upload'  => [

                                        'disk' => 'oss',

                                        'directory'  => [
                                                'image'  => 'image',
                                                'file'   => 'file',
                                        ],
                                ],
                       
                       
                        完工,在修改时,其自带删除功能,让你欲罢不能 哈哈哈       
                       
                       
                       
                       
        5.         show 显示的 时候  如何将图片显示出来 ,按照他的官方文档 我瞎几把猜了半天才出,注意 IdNumberImg 不是可用字段 ;
       
                        $show->field('id_number_img', __('身份证照片'))->id_number_img()->image();
               
                加个尺寸:
                       
                        $show->field('company_img', __('营业执照'))->id_number_img()->image($server = '', $width = 600, $height = 600);
                       

       
       
        ---------------问题集锦------------------------------------
       
        1. 一个form 表单的 radio  的 表单联动  > 是错误的,除了等于 其余基本都是错误的 但是
               
                错误的写法:
                        $form->radio('nationality', '国籍')
                                ->options([
                1 => '本国',
                2 => '外国',
                3 => '啥过'
                                ])->when('=', 1, function (Form $form) {
                                        $form->text('name', '姓名');
                                        $form->text('idcard', '身份证');
                                })->when('>', 1, function (Form $form) {
                                        $form->text('name', '姓名');
                                        $form->text('passport', '护照');
            });
       
               
                正确的写法:
                $form->radio('type', '类型')
            ->options([
                1 => '个人',
                2 => '代理机构',
                3=>'企业'
                ])
            -> when(1, function (Form $form) {
                $form->image('id_number_img', __('身份证照片'));
            })->when( '>=', 2, function (Form $form) {
                $form->text('company_name', __('公司名称'));
                $form->text('company_organ', __('信用代码'));
                $form->image('company_img', __('营业执照'));
            })
            // ->when( 3, function (Form $form) {
            //     $form->text('company_name', __('公司名称'));
            //     $form->text('company_organ', __('信用代码'));
            //     $form->image('company_img', __('营业执照'));
            // })
            ;
       
       
       
       
       
       
        2.  导出的excle文件会乱码 -.-
               
                        修改文件:vendor\encore\laravel-admin\src\Grid\Exporters\CsvExporter.php
                       
                        在 getHeaders()  函数中 添加一行
                          
                            // 这是我乱码时添加的一段代码  我真不知道干啥用的 但是管用
                                print(chr(0xEF).chr(0xBB).chr(0xBF));

                       

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表