dev-master 2019-08-27 08:07 UTC

This package is not auto-updated.

Last update: 2024-10-03 07:32:32 UTC


README

为指定的名称创建一个模型、控制器(包含存储库、验证请求、事件和监听器)、迁移、路由、面包屑和 CRUD 视图,以便在 [后端] 上使用。

从版本 1.4 开始,您还可以可选地生成前端文件:控制器、标签、事件、请求、监听器、视图、路由和存储库。

默认情况下,它不会覆盖任何可能存在的预定义名称的文件。因此,如果您删除了一个文件并再次运行命令,则删除的文件将再次创建,其余的将被忽略,并将保留您可能做出的更改。

要求

它已在 Laravel 5.7 上进行了测试。

安装

composer require apriandanailus/cruder

运行

在您的 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 代码。

创建的前端文件

控制器

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 关于添加 Listener 到 EventServiceProvider.php 的说明。
  • 1.3.7 将事件触发添加到控制器方法中。
  • 1.3.6 为创建、更新和删除操作添加了事件和监听器。
  • 1.3.5 添加了 --field 选项以指定默认字段的名称。

许可证

此存储库是开源软件,许可协议为 MIT 许可证

版权所有 © 2019 Apriandanailus

以下条件之下,任何人获取本软件及其相关文档文件(以下简称“软件”)的副本,均可免费使用、处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供副本的个人执行上述操作,前提如下

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同、侵权或其他原因引起的,无论是与软件或其使用或其他交易有关还是由此产生的。

Laravel 版权所有 © 2019 Taylor Otwell