pqrs / l5b-crud
为 rappasoft/laravel-5-boilerplate 提供的 CRUD artisan 命令
README
为给定的名称创建模型、控制器(包括存储库、验证请求、事件和监听器)、迁移、路由、面包屑和 CRUD 视图,以便在 rappasoft/laravel-5-boilerplate 后端工作。
从版本 1.4 开始,您还可以选择生成前端文件:控制器、标签、事件、请求、监听器、视图、路由和存储库。
默认情况下,它不会覆盖任何可能存在的预定义名称的文件。因此,如果您删除了一个文件并再次运行命令,则被删除的文件将再次创建,其余的将被忽略,并将保持您可能做出的更改。
要求
已测试与 Laravel 5.7 兼容。
安装
composer require pqrs/l5b-crud
运行
在您的 Laravel 项目根目录下
php artisan l5b:crud example
其中 example 是您希望用于模型(路由、视图、控制器等)的名称。我已经尽量遵循最佳命名实践,并使用复数或单数名称以及需要时的大小写。您也可以使用 camelCase 或 snake_case。
参数 example、Example、examples 或 EXAMPLES 都会得到相同的结果。
然后运行创建的迁移
php artisan migrate
在您的浏览器中打开
https://YOUR_SITE/admin/examples
...搞定! :)
注意:默认情况下,除了 id、deleted_at、created_at 和 updated_at 以外,表只包含一个 title 文本字段。编辑您新创建的迁移文件,在运行迁移命令之前添加您可能需要的任何其他字段。
选项
您可以通过使用 --migrate 选项运行命令来创建所有文件并运行迁移
php artisan l5b:crud example --migrate
or
php artisan l5b:crud example -m
您还可以使用 --field 选项将默认文本字段 'title' 的名称指定为任何其他您喜欢的名称
php artisan l5b:crud example --field=name
or
php artisan l5b:crud example -f name
您还可以使用 --force 选项覆盖先前创建的文件
php artisan l5b:crud example --force
要生成前端文件,也应使用 --frontend 选项。
php artisan l5b:crud example --frontend
包括菜单项
在 /resources/views/backend/example/includes 文件夹中创建了一个名为 sidebar-examples.blade.php 的文件。它包含访问您最近创建的视图的菜单项的 HTML 代码。您可以在 /resources/views/backend/includes/sidebar.blade.php 中的任何位置包含以下行以在侧边栏中显示它
@include('backend.example.includes.sidebar-examples')
事件和监听器
该软件包为创建、更新和删除项目的方法生成三个事件和监听器。为了使这些事件工作,您必须将它们与事件调度器注册,在 Providers/EventServiceProvider.php 文件中添加以下行(在 Backend Subscribers 下)
\App\Listeners\Backend\Example\ExampleEventListener::class
语言行
自定义的英文语言行可以在 /resources/lang/en 找到。有一个用于后端(backend_examples.php)的文件和一个用于前端(frontend_examples.php)的文件。
创建的后端文件
模型
app/Models/Example.php
属性特质
app/Models/Traits/Attribute/ExampleAttribute.php
这是新对象动作按钮的位置。
控制器
app/Http/Controllers/Backend/ExampleController.php
它包含 CRUD 方法:index、create、store、show、edit、update、destroy、delete、restore 和 deleted。
存储库
app/Repositories/Backend/ExampleRepository.php
包含数据库逻辑。
请求
app/Http/Requests/Backend/ManageExampleRequest.php
app/Http/Requests/Backend/StoreExampleRequest.php
app/Http/Requests/Backend/UpdateExampleRequest.php
验证管理、存储和更新请求。
事件
app/Events/Backend/Example/ExampleCreated.php
app/Events/Backend/Example/ExampleUpdated.php
app/Events/Backend/Example/ExampleDeleted.php
监听器
app/Listeners/Backend/Example/ExampleEventListener.php
迁移
database/migrations/\YYYY_MM_DD_create_examples_table.php
路由
routes/backend/examples.php
包含命名路由 admin.examples.index、admin.examples.deleted、admin.examples.restore、delete-permanently、admin.examples.create、admin.examples.store、admin.examples.show、admin.examples.edit、admin.examples.update 和 admin.examples.destroy。
面包屑
routes/breadcrumbs/backend/example.php
此页面包含路由 admin.examples.index、admin.examples.create、admin.examples.show、admin.examples.edit 和 admin.examples.deleted 的面包屑。
以下行被添加到 routes/breadcrumbs/backend/backend.php 文件中。
require **DIR**.'/example.php';
如果你删除了由该命令创建的 routes/breadcrumbs/backend/example.php 文件,请不要忘记删除此行,否则你的整个项目将会崩溃。
视图
resources/views/backend/example/index.blade.php
resources/views/backend/example/show.blade.php
resources/views/backend/example/create.blade.php
resources/views/backend/example/edit.blade.php
resources/views/backend/example/deleted.blade.php
resources/views/backend/example/includes/breadcrumb-links.blade.php
resources/views/backend/example/includes/header-buttons.blade.php
如果你向你的数据表添加更多字段,你需要编辑 show.blade.php、create.blade.php 和 edit.blade.php 以满足你的需求。
菜单项
sidebar-examples.blade.php
为 Laravel 5 模板侧边栏的菜单项提供的 HTML 代码。
创建的 Frontend 文件
控制器
app/Http/Controllers/Frontend/ExampleController.php
它包含 CRUD 方法:index、create、store、show、edit、update、destroy、delete、restore 和 deleted。
存储库
app/Repositories/Frontend/ExampleRepository.php
包含数据库逻辑。
请求
app/Http/Requests/Frontend/ManageExampleRequest.php
app/Http/Requests/Frontend/StoreExampleRequest.php
app/Http/Requests/Frontend/UpdateExampleRequest.php
验证管理、存储和更新请求。
事件
app/Events/Frontend/Example/ExampleCreated.php
app/Events/Frontend/Example/ExampleUpdated.php
app/Events/Frontend/Example/ExampleDeleted.php
监听器
app/Listeners/Frontend/Example/ExampleEventListener.php
路由
routes/frontend/examples.php
包含命名路由 examples.index、examples.deleted、examples.restore、delete-permanently、examples.create、examples.store、examples.show、examples.edit、examples.update 和 examples.destroy。
视图
resources/views/frontend/example/index.blade.php
resources/views/frontend/example/show.blade.php
resources/views/frontend/example/create.blade.php
resources/views/frontend/example/edit.blade.php
resources/views/frontend/example/deleted.blade.php
resources/views/frontend/example/includes/header-buttons.blade.php
如果你向你的数据表添加更多字段,你需要编辑 show.blade.php、create.blade.php 和 edit.blade.php 以满足你的需求。
变更
- 1.4 添加了语言行文件。添加了前端文件生成选项和强制覆盖之前文件的选项。感谢 @rabol 的贡献。
- 1.3.8 修改了 README.md 中的关于向 EventServiceProvider.php 添加监听器的内容。
- 1.3.7 添加到控制器方法中的事件触发。
- 1.3.6 添加了创建、更新和删除操作的 Events 和 Listeners。
- 1.3.5 添加了 --field 选项来指定默认字段的名称。
许可协议
此存储库是开源软件,根据 MIT 许可协议 授权。
版权所有 © 2019 Alvaro Piqueras alvaro@pqrs.es
特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,没有任何形式的保证,明示或暗示的,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任基于合同、侵权或其他原因,源于、因之产生或与此类软件或其使用或其它交易有关。
Laravel 版权所有 © 2019 Taylor Otwell
Laravel 5 模板 版权所有 © 2019 Anthony Rappa rappa819@gmail.com