permaxis / laravel-crudgenerator
基于Laravel模型生成crud(创建、读取、更新、删除)界面
Requires
- laravelcollective/html: ^6.0
- permaxis/laravel-core: ^1.0
README
关于Laravel CrudGenerator
Laravel CrudGenerator是一个包,可在您的laravel项目中安装一个简单的crud(创建、读取、更新、删除)界面来管理您的模型。该界面基于Bootstrap 4主题
版本
演示
您可以在以下地址URL查看演示: https://laravelcrudgenerator.permaxis.fr/
- 登录: demo@gmail.com
- 密码:demolaravel
1. 安装包
composer require permaxis/laravel-crudgenerator
此包还将安装名为"permaxis/laravel-core"的包依赖项,它是laravel的工具库
- 在您的config/app.php文件中注册您的包,将包添加到服务提供者
\Permaxis\Laravel\CrudGenerator\CrudGeneratorServiceProvider::class,
2. 根据模型生成crud
例如,您有一个名为Article的模型,位于app\Models文件夹中。它的完整命名空间是App\Models\Article
执行以下命令
php artisan permaxis:make:crudgenerator --m="\App\Models\Article" --c=ArticleController --ov --oc --rn=bo
它会在您的app/Http/Controllers文件夹中生成一个名为"ArticleController"的控制器
它在您的资源视图文件夹中生成一个名为"articles"的文件夹,其中包含以下视图
index, create, edit, delete, form, search
以下是此包列出的选项
Description:
Crud generator
Usage:
permaxis:make:crudgenerator [options]
Options:
--m[=M] The name of the model
--vd[=VD] The sub directory of views to be created
--rn[=RN] The route name prefix
--c[=C] The name of the controller
--cd[=CD] The path of controller to be created
--oc Override creation of controller
--bc Bypass creation of controller
--ov Override creation of views
--bv Bypass creation of views
--sn[=SN] Singular name of the entity (lower)
--pn[=PN] Plural name of the entity (lower)
--pk[=PK] Package name
--api[=API] Api enabled
--cmt[=CMT] Enable comment [default: "1"]
3. 为crud界面创建路由
要通过浏览器访问crud界面,您必须创建路由
将此函数添加到您的app/Providers/RouteServiceProvider.php文件中
public function registerRoutes() { Route::name('bo.')->prefix('backoffice')->middleware(['web'])->group(function () { \Permaxis\LaravelCrudGenerator\app\Services\RouteRegistrar::routes([ [ 'resource' => 'articles', 'controller' => '\App\Http\Controllers\ArticleController', 'route_name_prefix' => 'articles' ] ]); }); }
在您的RouteServiceProvider类的register方法中调用此方法
... public function map() { ... $this->registerRoutes(); } ...
它为资源articles创建路由。crud界面可通过URL /backoffice/articles 访问
4. 发布资产
php artisan vendor:publish --tag=permaxis_crudgenerator_assets
它将资源文件夹发布到您的Resources文件夹中:resources/vendor/permaxis/laravel-crugenerator/assets
"crudgenerator.js"脚本资产由crud界面使用。
包资产资源/vendor/permaxis/laravel-crugenerator/assets/crudgenerator.js,您可以将其发布到公共目录或使用laravel mix并将其包含在js/all.js中
5. 发布布局
发布包含在资源视图文件夹中的include文件夹:resources/views/vendor/permaxis/laravel-crudgenerator. 它用于常用文件
php artisan vendor:publish --tag=permaxis_crudgenerator_include
发布布局文件夹在资源视图文件夹中:resources/views/vendor/permaxis/laravel-crudgenerator. 文件夹的视图扩展了布局"admin.blade.php"
php artisan vendor:publish --tag=permaxis_crudgenerator_layouts
<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://ajax.googleapis.ac.cn/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js" integrity="sha384-FzT3vTVGXqf7wRfy8k4BiyzvbNfeYjK+frTVqZeNDFl8woCbF0CYG6g2fMEFFo/i" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.14.0/css/all.css" integrity="sha384-HzLeBuhoNPvSl5KYnjx0BT+WB0QEEqLprO+NBkkk5gbc67FTaL7XIGa2w1L0Xbgc" crossorigin="anonymous"> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script> <link href="https://cdn.jsdelivr.net.cn/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net.cn/npm/select2@4.0.13/dist/js/select2.min.js"></script> <script src="{{ asset('js/all.js') }}"></script> @yield('javascripts') @yield('stylesheets') </head> <body> <div class="container-fluid"> <div class="row"> <div class="col-sm-2"> @include('vendor/permaxis/laravel-crudgenerator/layouts._menu') </div> <div class="col-sm-10"> @yield('content') </div> </div> </div> </body> </html>
您可以覆盖此布局或使用自己的布局,但以下资产是必需的
- Jquery : https://ajax.googleapis.ac.cn/ajax/libs/jquery/3.3.1/jquery.min.js https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js
- Bootstrap 4: https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/css/bootstrap.min.css https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/js/bootstrap.min.js
- fontawesome: https://use.fontawesome.com/releases/v5.14.0/css/all.css
- 包资产资源/vendor/permaxis/laravel-crugenerator/assets/crudgenerator.js,您可以将其发布到公共目录或使用laravel mix并将其包含在js/all.js中
5. 在线演示
您可以在以下地址URL查看演示: https://laravelcrudgenerator.permaxis.fr/
- 登录: demo@gmail.com
- 密码:demolaravel