我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Dcat Admin 入门应用(二)代码生成器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Dcat Admin 入门应用(二)代码生成器

一、代码生成器

在日常开发中,我们可以用代码生成器一键生成增删改查页面代码,非常的方便快捷。

1、一键生成增删改查页面

1.1、将项目的APP_DEBUG开起(true),打开项目即可看到侧边栏的开发工具菜单,打开代码生成器;

image.png

1.2、点击已有数据库,选择需要生成页面的数据表,选择之后会自动填充字段信息,效果如下,:

image.png

  • 1.2.1、选择数据表后会自动填充处理主键Id和时间戳意外的字段
  • 1.2.2、可以选择性的创建业务文件:迁移文件、model、数据仓、控制器等等,如有文件已存在按需选择
  • 1.2.3、翻译字段信息,这将以字段标题的形式展现在列表页面和相关的数据页面

1.3、点击提交就可以自动生成相关文件,目录如下:

    app/Admin
    ├── Controllers
    │   └── AdminUserController.php  # 控制器
    └── Repositories                 # 数据仓库
    │   └── AdminUser.php
    resouces/lang/{当前语言}
    └── admin-user.php  
    ├── Models                        # 数据模型
    │   └── AdminUser.php       

3、添加路由

打开路由配置文件app/Admin/routes.php,往里面添加一行:

    $router->resource('adminUser', 'AdminUserController');

到此,就可以打开浏览器输入地址http://你的域名/admin/adminUser访问刚刚创建完的页面了

4、添加左侧菜单

打开项目主页,可以看到页面如下,可以在此处添加左侧菜单栏:

image.png

注意:

  • 添加路径的时候需要去除admin.php里面配置的路由前缀(默认是admin)
  • 如果添加的是外部链接的话,需要添加完整的链接地址

5、菜单语言翻译文件

在您的语言文件的menu_ti<x>tles索引中追加菜单标题。 例如“工作单位”标题:

在resources/lang/{当前语言}/admin.php中


    // 用_小写并用_替换空格
    'menu_titles' => [
        'work_units' => '当前语言包翻译内容'
    ],


自此完成了代码生成器的使用和增删改查页面的生成

二、增删改查功能简易说明

1、控制器

Dcat Admin的增删改查页面代码是非常简洁和易懂的,对开发者非常的友好,只需极少的代码即可构建出一个功能完善的后台系统,并且非常简单灵活和易于扩展。

打开app/Admin/Controllers/AdminUserController.php可以看到如下代码


<?php

namespace App\Admin\Controllers;

use App\Admin\Repositories\User;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;

class AdminUserController extends AdminController
{
    
     
    public function index(Content $content)
    {
        $content->header('产品管理');
        $content->description('草稿数据');

        $content->breadcrumb(
            ['text' => '管理', 'url' => '/sdk/manager/draft'],
            ['text' => '数据']
        );

        $grid = $this->grid();
        $this->addscript($grid);

        //filter
        $this->gridSearch($grid);

        //actions
        $this->gridActions($grid);

        //可以链式添加页面原始(html,js,css等)一个body相当于页面一个div.row层
        return $content->body($grid)->body(new Copyscript());
    }


    
    protected function grid()
    {
        return Grid::make(new User(), function (Grid $grid) {
            // 这里的字段会自动使用翻译文件
            $grid->column('id')->sortable();
            $grid->column('name');
            ...
            $grid->column('updated_at')->sortable();

            //筛选项,如果数据信息较多,建议单独方法处理筛选配置
            $grid->filter(function (Grid\Filter $filter) {
                $filter->equal('id');

            });
        });
    }

    
    protected function detail($id)
    {
        return Show::make($id, new User(), function (Show $show) {
            // 这里的字段会自动使用翻译文件
            $show->field('id');
            $show->field('name');
            ...      
            $show->field('created_at');
            $show->field('updated_at');
        });
    }

    
    protected function form()
    {
        return Form::make(new User(), function (Form $form) {
            // 这里的字段会自动使用翻译文件
            $form->display('id');
            $form->text('name');
            ...
            $form->display('created_at');
            $form->display('updated_at');
        });
    }
    
     
    public function update($id)
    {
        //原始操作
        //return $this->form()->update($id);

        //扩展操作
        $form = (new AccountEdit())->accountStatusEdit();
        $update = $form->update($id);
        $status = request()->input('status');
        $response = json_decode($update->getContent(), true);
        if ($response && isset($response['status']) && $response['status'] && in_array($status, [3, 4])) {
            AccountLoginTokenDao::removeAccountToken($id);
        }
        
        return $update;
    }

}

控制器方法简述:

  • 自动生成:
    • grid:页面列表数生成器:生成信息、展示基础信息、关联数据信息、自定义状态显示等等,更多请参考,grid使用方法
    • detail:数据详情生成器,选择数据显示
    • form:表单生成器,如数据编辑、新增等功能,生成基础表单
  • 扩展重写
    • index:代码生成器不会主动创建该方法,如果有需要可以自定义重写该方法:比如,按需加载js、css,或者需要自定义页面布局等等,根据业务需要进行重写
    • update:该方法是自定义编辑,当自动生成的表单不满足编辑需求的是,可以自定表单和更新方法,然后处理更新结果

2、数据仓

打开刚生成的文件app/Admin/Repositories/AdminUser.php,可以看到只有如下内容,非常简单:

<?php

    namespace App\Admin\Repositories;
    
    use Dcat\Admin\Repositories\EloquentRepository;
    use App\User as UserModel;
    
    class AdminUser extends EloquentRepository
    {
        protected $eloquentClass = UserModel::class;
    }

3、语言包

每个控制器都会生成相对于的语言包,语言包放置地址:resouces/lang/{当前语言}/admin-user.php。语言包命名是控制器文件名称去除controller后小写通过中横线连接:

<?php 
    return [
        // labels是自定义标签翻译
        'labels' => [
            // 这个是页面 title 翻译
            'User' => '用户',
        ],
        // 表字段翻译
        'fields' => [
            'name' => '名称',
            'email' => '邮箱',
            'email_verified_at' => '验证时间',
            'password' => '密码',
            'remember_token' => 'remember_token',
        ],
        'options' => [
        ],
    ];

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Dcat Admin 入门应用(二)代码生成器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录