乌鸦嘴文档 乌鸦嘴文档
乌鸦嘴社区 (opens new window)
乌鸦嘴社区 (opens new window)
  • 入门

    • 介绍
    • 安装
    • v1.x版本升级指南
    • 版本升级须知
    • 快速开始
      • 代码生成器
        • 创建数据表
        • 一键生成增删改查页面
        • 添加路由配置
        • 添加左侧菜单
        • 菜单翻译
        • 完成
      • 增删改查功能简易说明
        • 控制器
        • 数据仓库
        • 语言包
    • 开发前必读
    • 主题与颜色
    • 静态资源加载
    • 视图与自定义页面
    • 多应用 (多后台)
    • JS组件
    • 常见问题汇总
    • Laravel Octane
  • 数据列表

  • 数据表单

  • 数据详情

  • 模型树

  • 数据仓库

  • 动作

  • 多语言

  • 开发扩展

  • 页面组件

  • 区块

  • 动作以及表单相应

  • 权限控制

  • 菜单

  • 帮助函数

  • 开发工具

  • 自定义登陆

  • 自定义头部导航

  • 更新日志

目录

快速开始

# 快速开始

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

下面将会给大家介绍代码生成器的使用方法,以及一个增删改查页面的基本构成。通过学习下面的内容将可以帮助大家快速理解这个系统的基本使用方法。

# 代码生成器

# 创建数据表

安装完Laravel之后会内置一个users表的migration文件(如果不了解migration文件作用,请参考文档数据库迁移 (opens new window)),文件路径为database/migrations/2014_10_12_000000_create_users_table.php。

然后我们运行以下命令,在MySQL中创建这个数据表

php artisan migrate

运行完之后可以看到数据库中已经多了一个users表,结构如下

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
  `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

# 一键生成增删改查页面

提示

如果你的开发环境不是windows,请注意要给项目目录设置读写权限,否则可能出现无法生成代码的情况。

**1.**首先打开地址http://你的域名/admin/helpers/scaffold,进入代码生成器页面;

**2.**由于前面已经创建好了数据表,所以这里我们可以直接通过页面左上角的第二个下拉选框选择users表,选择之后会自动填充字段信息,效果如下

**3.**修改模型名称为App\User

**4.**由于migration文件、数据表、以及模型文件(使用内置的App\User即可)都已经有了,所以此处我们可以把这三个选项给去掉

**5.**填写字段翻译

最后呈现效果如下

最后点击创建按钮即可,创建的文件如下

app/Admin
├── Controllers
│   └── UserController.php  # 控制器
└── Repositories            # 数据仓库
│   └── User.php
resouces/lang/{当前语言}
└── user.php                # 语言包

# 添加路由配置

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

$router->resource('users', 'UserController');

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

# 添加左侧菜单

打开http://你的域名/admin/auth/menu,添加对应的menu, 然后就能在后台管理页面的左侧边栏看到用户管理页面的链接入口了。

其中uri填写不包含路由前缀的的路径部分,比如完整路径是http://你的域名/admin/demo/users, 那么就填demo/users,如果要添加外部链接,只要填写完整的url即可,比如http://dcat-admin.org/.

# 菜单翻译

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

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

...
// 用_小写并用_替换空格
'titles' => [
    'work_units' => 'Unidades de trabajo'
],

# 完成

这样一个简单的CURD功能就构建完成了,剩下的工作就是深度构建数据表格和表单了,打开 app/Admin/Contollers/UserController.php,找到form()和grid()方法,然添加构建代码。 更多详细使用请查看数据表格和数据表单。

# 增删改查功能简易说明

为了便于大家理解增删改查功能的基本用法,下面将给大家简单介绍前面使用生成器生成的代码。

# 控制器

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

打开app/Admin/Controllers/UserController.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\Http\Controllers\AdminController;

class UserController extends AdminController
{
    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        return Grid::make(new User(), function (Grid $grid) {
            // 这里的字段会自动使用翻译文件
            $grid->column('id')->sortable();
            $grid->column('name');
            $grid->column('email');
            $grid->column('email_verified_at');
            $grid->column('password');
            $grid->column('remember_token');
            $grid->column('created_at');
            $grid->column('updated_at')->sortable();
        
            $grid->filter(function (Grid\Filter $filter) {
                $filter->equal('id');
        
            });
        });
    }

    /**
     * Make a show builder.
     *
     * @param mixed $id
     *
     * @return Show
     */
    protected function detail($id)
    {
        return Show::make($id, new User(), function (Show $show) {
            // 这里的字段会自动使用翻译文件
            $show->field('id');
            $show->field('name');
            $show->field('email');
            $show->field('email_verified_at');
            $show->field('password');
            $show->field('remember_token');
            $show->field('created_at');
            $show->field('updated_at');
        });
    }

    /**
     * Make a form builder.
     *
     * @return Form
     */
    protected function form()
    {
        return Form::make(new User(), function (Form $form) {
            // 这里的字段会自动使用翻译文件
            $form->display('id');
            $form->text('name');
            $form->text('email');
            $form->text('email_verified_at');
            $form->text('password');
            $form->text('remember_token');
        
            $form->display('created_at');
            $form->display('updated_at');
        });
    }
}

# 数据仓库

Dcat Admin 构建页面并不直接依赖于Model,而是引入了数据仓库作为中间层,让页面的构建不再与数据的读写产生强耦合关系。

数据仓库是Dcat Admin中对数据增删改查操作接口的具体实现,更详细用法请参考数据仓库。

提示

如果你的数据来自MySQL,那么你也可以直接使用Model实例,底层会自动把Model转化为数据仓库实例。这里为了便于大家理解其中的概念,所以创建了数据仓库文件。

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

<?php

namespace App\Admin\Repositories;

use Dcat\Admin\Repositories\EloquentRepository;
use App\User as UserModel;

class User extends EloquentRepository
{
    protected $eloquentClass = UserModel::class;
}

# 语言包

每个控制器都可以生成自己对应的语言包,并且数据表格、数据表单和数据详情功能都会自动读取里面的翻译。

下面我们打开UserController对应的语言包文件resouces/lang/{当前语言}/user.php

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

版本升级须知
开发前必读

← 版本升级须知 开发前必读→

Theme by Vdoing | Copyright © 2020-2022 wyz.xyz 宁ICP备15001739号-5
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×