pqrs/l5b-crud

为 rappasoft/laravel-5-boilerplate 提供的 CRUD artisan 命令

1.4 2019-04-02 19:10 UTC

This package is auto-updated.

Last update: 2024-09-06 23:41:38 UTC


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。

参数 exampleExampleexamplesEXAMPLES 都会得到相同的结果。

然后运行创建的迁移

php artisan migrate

在您的浏览器中打开

https://YOUR_SITE/admin/examples

...搞定! :)

注意:默认情况下,除了 iddeleted_atcreated_atupdated_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 方法:indexcreatestoreshoweditupdatedestroydeleterestoredeleted

存储库

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.indexadmin.examples.deletedadmin.examples.restoredelete-permanentlyadmin.examples.createadmin.examples.storeadmin.examples.showadmin.examples.editadmin.examples.updateadmin.examples.destroy

面包屑

routes/breadcrumbs/backend/example.php

此页面包含路由 admin.examples.indexadmin.examples.createadmin.examples.showadmin.examples.editadmin.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.phpcreate.blade.phpedit.blade.php 以满足你的需求。

菜单项

sidebar-examples.blade.php

为 Laravel 5 模板侧边栏的菜单项提供的 HTML 代码。

创建的 Frontend 文件

控制器

app/Http/Controllers/Frontend/ExampleController.php

它包含 CRUD 方法:indexcreatestoreshoweditupdatedestroydeleterestoredeleted

存储库

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.indexexamples.deletedexamples.restoredelete-permanentlyexamples.createexamples.storeexamples.showexamples.editexamples.updateexamples.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.phpcreate.blade.phpedit.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