slimcube/ admingenerator
用于为实体创建管理界面的包
1.3
2018-11-22 17:49 UTC
Requires
- cviebrock/eloquent-sluggable: ^4.6
- dimsav/laravel-translatable: ^9.0
- doctrine/dbal: ^2.8
- intervention/image: ^2.4
- laravel/passport: ^7.0
- laravel/socialite: ^3.1
- spatie/laravel-fractal: ^5.4
- spatie/laravel-permission: ^2.12
This package is not auto-updated.
Last update: 2024-09-20 22:48:26 UTC
README
此包是一个管理生成器,可以帮助您根据数据库结构生成管理界面。其主要目标是快速创建创建CRUD所需文件。生成器使用Laravel框架和Vue JS框架构建。
以下文件将被创建
- 模型
- 验证请求
- 请求转换器
- 控制器
- 索引和创建Vue文件
- API路由
- JS路由
此外,该包还提供以下文件
- 管理和本地中间件
- 用户模型
- 通用页面的页面、区块和SEO结构
- 图像处理结构
- 管理布局
该包还依赖于以下包以快速设置项目
- cviebrock的Sluggable,用于为模型生成短链接
- dimsav的Translatable,为模型提供翻译
- Laravel Socialite,允许使用FB、Google或Github登录
- Intervention image,用于处理图像
- Laravel passport,用于管理令牌
- Laravel spatie permission,用于管理角色和权限
- Laravel fractal,用于将数据库结构进行掩码以提高安全性
- Doctrine dbal,用于分析数据库结构
安装
在新的Laravel安装上,您可以通过运行以下命令来安装此包
composer require sleekcube/admingenerator
安装完成后,您需要设置Laravel以使用此包。只需运行以下命令
php artisan sleekcube:setup
完成后,运行
composer dump-autoload
之后,您需要将数据库连接到您的Laravel应用程序。
运行以下命令
php artisan config:cache;
php artisan storage:link;
php artisan migrate:fresh;
php artisan passport:install;
php artisan db:seed;
完成后,您应该尝试访问应用程序的/admin路由。理想情况下,您会通过虚拟主机将应用程序连接起来。无论如何,请确保更改.env文件中的APP_URL。正如您在UserSeeder中看到的,有一个用户名为Admin@test.com和密码为secret的管理员
如何使用此包
该包提供三个命令,针对三种类型的数据库结构。
- 无关的独立模型
php artisan generate:simple [model]
- 相关模型
php artisan generate:belongto [model]
- 翻译模型
php artisan generate:translation [model]
注意:模型名称需要使用单数形式。
该包还提供调度命令。这允许您排序迁移。首先,您需要发布包配置
php artisan vendor:publish --provider="Sleekcube\AdminGenerator\AdminGeneratorServiceProvider" --tag="config"
在您的配置目录中,您将找到一个sleekcube.php文件。在这里,您可以定义如下数组
'migrations' => [
'tablename1' => 'simple',
'tablename2' => 'belongto',
'tablename3' => 'translation',
]
迁移完成后,为了重新编译您的资产,您需要运行
npm run production
示例
// Migrations
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('description')->nullable();
$table->string('slug');
$table->timestamps();
});
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body')->nullable();
$table->string('slug');
$table->integer('tag_id')->unsigned();
$table->foreign('tag_id')->references('id')->on('tags');
$table->timestamps();
});
Schema::create('blogs', function (Blueprint $table) {
$table->increments('id');
$table->integer('views')->default(false);
$table->timestamps();
});
Schema::create('blog_translations', function (Blueprint $table) {
$table->increments('id');
$table->integer('blog_id')->unsigned();
$table->string('locale')->index();
$table->string('title');
$table->text('description');
$table->string('slug');
$table->unique(['blog_id','locale']);
$table->foreign('blog_id')->references('id')->on('blogs')->onDelete('cascade');
});
}
// in config/sleecube.php
'migrations' => [
'tag' => 'simple',
'article' => 'belongto',
'blog' => 'translation',
]
这将创建以下迁移
php artisan generate:simple tag;
php artisan generate:belongto article;
php artisan generate:translation blog;
重新编译您的资产,并检查以下URL
- /admin/tag
- /admin/article
- /admin/blog
Hazza
约束
作为安全特性,模型的id从前端隐藏。映射始终使用短链接完成,这意味着模型始终需要有一个字符串,该字符串将用作生成短链接的源。
未来开发
- 测试包
- 生成CRUD生成的测试
- 链接翻译模型
- 适应多对多关系
- 适应一对多关系
- 处理更多表单类型。目前只支持字符串、文本和整数