farhad / igloo
创建基本 CRUD 功能的自动化流程
Requires
- barryvdh/laravel-cors: ^0.11.0
- ellipsesynergie/api-response: ^0.15.0
- illuminate/support: ^5.5
- laracasts/generators: ^1.1
- spatie/laravel-fractal: ^5.3
This package is not auto-updated.
Last update: 2024-09-24 10:23:34 UTC
README
内容
变更日志
1.2 版本中的新功能
- 包内支持图形用户界面
- 包含下拉 API
- 修复了几个错误
1.1 版本中的新功能
- 支持 Laravel 5.7
- 命名空间支持
- 修复了几个错误
安装
-
要安装 Igloo 代码生成器,请运行以下命令
composer require infancyit/igloo
-
运行以下命令以加载所有配置文件
php artisan vendor:publish --provider="InfancyIt\Igloo\IglooServiceProvider"
-
为了在 API 中间件组或路由上允许 CORS,请将
HandleCors
中间件添加到Kernel.php
文件中的middleware
数组protected $middleware = [ ... ... ... ... ... ... ... ... ... ... \Barryvdh\Cors\HandleCors::class, ];
使用
创建模型
让我们从创建一个基本的模型开始
模型将保存在 app\Models
文件夹中。
在项目根目录中运行以下命令。
php artisan make-model Book
如果您想添加 fillable
或 guarded
值,也可以传递列的列表
php artisan make-model Book --fillable=name,author,published_date
或者
php artisan make-model Book --guarded=id
或者
php artisan make-model Book --fillable=name,author,published_date --guarded=id
创建服务
让我们创建一些基本的 服务,这些服务将扩展来自 app\Services
的 BaseService
在项目根目录中运行以下命令。
php artisan make-service Book
创建仓库
让我们创建一些基本的 仓库,这些仓库将扩展来自 app\Repositories
的 BaseRepository
在项目根目录中运行以下命令。
php artisan make-repository Book
创建转换器
让我们创建一个基本的 转换器
转换器将在 app/Transformers/Api
文件夹中创建。
在项目根目录中运行以下命令。
php artisan make-transformer Book id,name,author,published_date
在创建 转换器
时,需要 attributes
列表。所有列应该由单个 ,
(逗号) 分隔。这将创建如下主部分
public function getTransformableFields($entity)
{
return [
'id' => (int) $entity->id,
'name' => $entity->name,
'author' => $entity->author,
'published_date' => $entity->published_date
];
}
创建请求
让我们创建一个基本的 请求
转换器将在 app/Request/Api
文件夹中创建。
在项目根目录中运行以下命令。
php artisan make-request Book id,name,author,published_date
在创建 请求
时,需要 attributes
列表。所有列应该由单个 ,
(逗号) 分隔。这将创建如下主部分
public function rules()
{
return [
'name' => 'required',
'author' => 'required',
'published_date' => 'required'
];
}
创建路由
您还可以为模型创建 API 路由。在项目根目录中运行以下命令。
php artisan make-route Book
此命令的输出如下
///////////////////////////// Book Routes //////////////////////////////
Route::group(['prefix' => 'book', 'namespace' => 'Api'], function () {
Route::get('index', 'BookController@index')->name('book.index');
Route::post('create', 'BookController@store')->name('book.store');
Route::post('update', 'BookController@update')->name('book.update');
Route::delete('delete', 'BookController@delete')->name('book.delete');
});
此命令不会保存任何内容。您需要从控制台复制此段并将其粘贴到您的 web.php
或 api.php
文件中。控制器名称的假设将是 [模型名]Controller。
安装
-
有关捆绑创建,请访问
-
或者您可以在安装包后访问
\igloo
路由。
许可证
Igloo 代码生成器是免费软件,根据 MIT 许可证的条款分发。