paulohsilvestre/generatorforlaravel

模块响应,用于将导出的 MySql Workbench 图表转换为 Laravel 项目中使用的路由、类、控制器、服务、验证器和迁移

dev-master / 1.0.x-dev 2018-10-27 03:26 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:21:34 UTC


README

快速开始

通过 Composer 安装

如果您想帮助改进项目,请随时联系我,我想留下一个更完整的工具,为 VueJs/Angular 等生成内容。

文档末尾有一个链接到 YouTube 上的演示视频。

创建一个 Laravel 项目

composer create-project --prefer-dist laravel/laravel nomeprojeto

访问创建的项目名称projeto,并使用 composer 安装框架

$ composer require paulohsilvestre/generatorforlaravel:~1.0

或者手动在 composer.json 文件的 require 键中添加

"paulohsilvestre/generatorforlaravel": "~1.0"

在 config/app.php 文件中注册 GeneratorForLaravel 类

Paulohsilvestre\GeneratorForLaravel\GenerationServiceProvider::class

在您的项目中定位 Laravel 的路由文件,通常位于 routes/web.php,在您希望包含路由的地方添加以下行

####ROUTEADD

上述行将被用于添加尚未添加的路由,如果需要,可以将其放在您的会话验证中间件等之间。

现在您可以在 MysqlWorkBench 中创建一个 DER,该模型应导出为 SQL CREATE SCRIPT,如下面的 .sql 模型所示,在 WorkBench 的注释中可以添加您希望表单验证的数据类型。"AINDA NÃO ESTÃO 100%,ESTOU TRABALHANDO NELES"(仍然不是100%,我正在努力解决)

一个值得注意的细节是,表的主键 ID 总是使用 ID 并添加 AUTOINCREMT,如果不遵循此标准,系统将生成异常。

不要在表名中使用下划线 "_",因为框架在生成迁移时会导致错误,我在同步过程中还没有解决这个问题。

-- MySQL Script generated by MySQL Workbench
-- Thu Oct 25 16:37:21 2018
-- Model: New Model    Version: 1.0
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`estados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`estados` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(100) NOT NULL COMMENT '<placeholder>Nome do Estado</placeholder>',
  `abreviacao` VARCHAR(2) NULL,
  `status` VARCHAR(1) NULL COMMENT '<type>select</select>\n<options>S|Sim, N|Não</options>',
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`cidades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`cidades` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(100) NOT NULL COMMENT '<min>5</min>\n<max>100</max>\n<type>input</type>',
  `dd` VARCHAR(2) NULL COMMENT '<max>2</max>\n<min>2</min>',
  `estados_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_cidades_estados_idx` (`estados_id` ASC),
  CONSTRAINT `fk_cidades_estados`
    FOREIGN KEY (`estados_id`)
    REFERENCES `mydb`.`estados` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

现在我们有了处理文件,访问项目的 URL

http://SEUSERVIDOR/generation

这个 URL 是起始 URL 和未来的重新处理,例如,今天您处理了 DER,明天需要添加新字段,在 DER 中进行更改并重新导出,您需要再次发送到该 URL,以便系统能够生成所需的数据,当创建新字段时,它还会添加一个用于更新表的迁移。

ATENÇÃO, POR SEGURANÇA SE O SISTEMA ENCONTRA UM ARQUIVO EXISTENTE ELE NÃO SOBRESCREVE, 
AI OS PASSOS SÃO ADICIONAR O CAMPO MANUALMENTE ONDE NECESSÁRIO COMO POR EXEMPLO EM UM 
FORMULÁRIO, SE DESEJAR QUE O SISTEMA RECRIE UM FORMULÁRIO, CONTROLLER, SERVICE OS MESMOS DEVEM SER EXCLUÍDOS.

在提交表单的表单中,有一些默认字段,可以更改,但还没有完全测试,因此可能存在问题:)

编辑 .env 文件以进行数据库连接

DB_HOST=127.0.0.1
DB_DATABASE=database
DB_USERNAME=user
DB_PASSWORD=senha
NÃO IMPLEMENTADO AINDA
DADOS DAS CONEXÕES COMO USUÁRIO E SENHA, DEVEM SER TROCADOS AINDA NO .ENV PARA EVITAR PROBLEMAS

添加运行命令

导入文件后,进入项目控制台并执行以下命令

php artisan migration
composer dumpautoload

添加服务提供者

在 config/app.php 文件中注册以下 Provider

App\Providers\AppRepositoryProvider::class,

现在添加到您的路由文件

Route::get('/', function () {
    return view('layout.index');
});

现在访问网站的默认 URL https://,以查看一切是否搭建正确。

只需现在访问您的网站,它应该正常打开,只需访问现有的菜单即可列出数据,并具有添加、修改、删除等功能。

在 config/ 文件夹中存在 3 个文件,可以更改以更改报告/菜单/按钮的详细信息:translate.php {表和表单字段的翻译} menu.php {放置所需菜单名称的文件} options.php {包含按钮描述和系统其他变量的文件}

如果您使用 Linux/mac,则可能需要为目录执行 sudo,这不是标准做法,但可能有助于解决权限错误。

YOOUTUBE 视频

https://www.youtube.com/watch?v=b_l1Qm8uVrQ&feature=youtu.be

不要注意,在演示中总是存在问题。

未来实施

  • 包含路由保护
  • 包含用户所需表
  • 为使用 Vue.js 和 Angular 生成
  • 用于消费的路由