paulohsilvestre / generatorforlaravel
模块响应,用于将导出的 MySql Workbench 图表转换为 Laravel 项目中使用的路由、类、控制器、服务、验证器和迁移
Requires
- php: >=5.6.4
- prettus/l5-repository: ^2.6
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 生成
- 用于消费的路由