idevsmg / easyadmin
具备简易CRUD、导入和导出表格功能的行政包
dev-main
2024-09-07 07:13 UTC
Requires
- php: ^8.1
- barryvdh/laravel-dompdf: ^2.0
- openspout/openspout: ^4.22
This package is auto-updated.
Last update: 2024-09-07 07:13:54 UTC
README
具备简易CRUD、导入和导出数据的行政包
安装
-
将包添加到composer.json
composer require idevsmg/easyadmin:dev-main
-
将自动加载添加到composer.json
"autoload": { "psr-4": { .... "Idev\\EasyAdmin\\": "vendor/idevsmg/easyadmin/src/" } },
3a. 将提供者添加到config/app.php的providers
'providers' => ServiceProvider::defaultProviders()->merge([ ..... Idev\EasyAdmin\EasyAdminServiceProvider::class, ])->toArray(),
3b. 将提供者添加到bootstrap/providers.php的providers(Laravel 11)
return [ .... Idev\EasyAdmin\EasyAdminServiceProvider::class, ];
- 运行安装程序
composer dump-autoload php artisan vendor:publish --tag=install-idev --force
然后您可以执行迁移和种子
CRUD生成器
您可以通过在app/Console/Kernel.php中启用命令来轻松创建CRUD控制器
protected $commands = [
....
\Idev\EasyAdmin\app\Console\Commands\ControllerMaker::class,
];
在laravel 11中,您应该在bootstrap/app.php中添加命令
->withCommands([
Idev\EasyAdmin\app\Console\Commands\ControllerMaker::class,
])
确保已创建表迁移,然后只需输入
php artisan idev:controller-maker --slug={your-route} --table={your-table}
中间件CRUD(可选)
我们还在kernel.php中准备了一个用于CRUD访问控制的中间件,只需将以下代码片段添加到其中即可
protected $middlewareAliases = [ ..... 'middlewareByAccess' => \Idev\EasyAdmin\app\Http\Middleware\MiddlewareByAccess::class ];
并且不要忘记将此中间件实现到您的路由中
Route::group(['middleware' => ['web', 'auth', 'middlewareByAccess']], function () {
......
});
示例CRUD(可选)
如果您想查看我们的示例CRUD控制器,可以发布sample-crud。
php artisan vendor:publish --tag=sample-crud --force
并设置如下
Route::group(['middleware' => ['web', 'auth']], function () {
Route::resource('sample-data', SampleDataController::class);
Route::get('sample-data-api', [SampleDataController::class, 'indexApi'])->name('sample-data.listapi');
Route::get('sample-data-export-pdf-default', [SampleDataController::class, 'exportPdf'])->name('sample-data.export-pdf-default');
Route::get('sample-data-export-excel-default', [SampleDataController::class, 'exportExcel'])->name('sample-data.export-excel-default');
Route::post('sample-data-import-excel-default', [SampleDataController::class, 'importExcel'])->name('sample-data.import-excel-default');
});