digitaldream/laracrud

您是否有一个结构良好的数据库,并想在它上面构建一个Laravel应用程序?通过使用这个工具,您可以生成具有必要方法和属性的模型,带有规则的请求类,从控制器方法和其参数生成路由,并具有完整功能的表单以及验证错误消息等,所有这些都可以通过单行命令完成。那么,让我们开始吧。 查看演示代码幻灯片

5.0 2021-09-24 05:13 UTC

README

您是否有一个结构良好的数据库,并想在它上面构建一个Laravel应用程序?通过使用这个工具,您可以生成具有必要方法和属性的模型,带有规则的请求类,从控制器方法和其参数生成路由,并具有完整功能的表单以及验证错误消息等,所有这些都可以通过单行命令完成。那么,让我们开始吧。 查看演示代码幻灯片

安装

composer require digitaldream/laracrud --dev

设置

  1. 将此行添加到config/app.php的providers数组中。如果您正在使用laravel 5.5或更高版本,则不需要此步骤
    LaraCrud\LaraCrudServiceProvider::class
  1. 然后运行
    php artisan vendor:publish --provider="LaraCrud\LaraCrudServiceProvider"

命令

然后您可以通过运行'php artisan'来查看新命令

  • laracrud:model {tableName} {name?} {--on=} {--off=}:根据表创建模型
  • laracrud:request {Model} {name?} {--resource=} {--controller=} {--api}:根据表创建请求类/们
  • laracrud:Controller {Model} {name?} {--parent=} {--only=} {--api}:根据模型创建控制器类
  • laracrud:mvc {table} {--api}:在单一位置运行上述命令
  • laracrud:route {controller} {--api}:根据控制器方法创建路由
  • laracrud:view {Model} {--page=(index|create|edit|show|form|table|panel|modal)} {--type=} {--name=} {--controller=}
  • laracrud:migration {table}:根据表结构创建迁移文件。它是Laravel中正常迁移文件创建的相反
  • laracrud:policy {model} {--controller=} {--name=}
  • laracrud:package {--name=}
  • laracrud:transformer {model} {name?}:为模型创建dingo api转换器
  • laracrud:test {controller} {--api}:为控制器中的每个方法创建测试方法

注意:--api选项将生成api资源。如控制器、请求、路由、测试。将生成与Dingo API兼容的代码查看API文档

如何使用

创建模型

在Laravel中,有一些关于模型的好做法。使用作用域来定义查询,定义fillable、dates、casts等。还要定义关系、设置Attribute和getAttribute以在模型保存和获取之前和之后进行工作。

我们将通过读取表结构及其与其他表的关联来自动创建这些内容。

    php artisan laracrud:model users

默认情况下,模型名称将基于表名。但模型名称可以作为第二个参数指定。如下所示

php artisan laracrud:model users MyUser

视频教程

创建请求

一个结构良好的表在插入之前会验证一切。如果您将出生日期列的数据类型设置为日期,则不能在该列中插入非法日期。所以如果我们已经在表上设置了这种逻辑,为什么我们还需要在请求中再次编写它?让我们使用表逻辑来在Laravel中创建请求类。

php artisan laracrud:request MyUser

在这里,MyUser 是 Eloquent 模型。从 LaraCrud 版本 4.* 开始,这个命令接受模型名称而不是表名。

和模型名称一样,我们也可以指定一个自定义的请求名称。

php artisan laracrud:request User RegisterRequest

如果你想要为你的资源控制器创建多个请求,那么

php artisan laracrud:request User –-resource=index,show,create,update,destroy

它将在 app/Http/Requests 文件夹下创建一个名为 users 的文件夹,并创建这些请求类。有时你可能想为每个控制器方法创建一个单独的请求类。

php artisan laracrud:request User –-controller=UserController
php artisan laracrud:request User --controller=UserController --api //this will generated Request for API usages

它将读取你的控制器,并为你的公共方法创建请求类

视频教程

创建控制器

    php artisan laracrud:controller User
    //Or Give a controller name.
    php artisan laracrud:controller User MyUserController
    //Or we can give a sub namespace
    php artisan laracrud:controller User User/UserController
    //It will create a folder User to controllers
    php artisan laracrud:controller Comment --parent=Post // it will create a sub resource CommentController

这将创建一个控制器,其中包含创建、编辑、保存和删除方法以及代码。它还处理你的关系同步。

视频教程

创建视图

一个典型的表单代表一个数据库表。例如,对于一个注册表单,它包含所有必要的输入字段,用于用户表。大多数时候,我们使用 Bootstrap 来生成表单。如果验证失败,它会突出显示错误字段并显示值。所有这些都可以通过以下方式完成:

 php artisan laracrud:view User --page=form
 php artisan laracrud:view User --page=index --type=panel //There are three type of layout for index page panel,table and tabpan
 php artisan laracrud:view User --controller=UserController // Create all the views which is not created yet for this controller
 

在这里,User 是 Eloquent 模型。从 LaraCrud 版本 4.* 开始,这个命令接受模型名称而不是表名。

这将创建一个完整的用户 CRUD 视图。

视频教程

创建路由

路由是 Laravel 应用程序的最重要部分。我们通过其公共方法和参数来创建路由。让我们来做这个路由命令的工作。

    php artisan laracrud:route UserController
    php artisan laracrud:route UserController --api // generate api routes for this conroller

如果你已经为某些路由进行了自定义定义,那么不用担心。它将创建尚未定义的路由。请使用反斜杠(/)来指定子命名空间。例如:

 php artisan laracrud:route Auth/AuthController

策略

Laravel 有默认的策略生成器。它的工作方式与之一致,但有一个额外的功能,就是根据控制器的公共方法创建策略方法。

php artisan laracrud:policy User 
// will create policy class with basic methods
php artisan laracrud:policy User --controller=UserController
// create method based on Controller public methods

包让我们有机会在现有的应用程序中创建/使用组件。这使得我们的代码可重用。Laravel 包的结构与 Laravel 应用程序的结构相似。

php artisan laracrud:package Hello

它将在你的 /packages 文件夹中创建一个与 Laravel 应用程序相同结构的文件夹 查看包文档 视频教程

测试

我们需要测试我们的路由端点。要基于控制器创建测试类,请执行以下操作

php artisan laracrud:test UserController
// or to make api test just pass --api like below
php artisan laracrud:test UserController --api

转换器

转换器是 Dingo API 的一个重要部分。为了将模型暴露给 API 端点,转换器在 API 和模型之间扮演媒介的角色。

php artisan laracrud:transformer User

查看 API 文档

一次性创建所有内容

如果我们需要所有命令,那么只需执行以下操作

    php artisan laracrud:mvc users
    php artisan laracrud:mvc users --api // create all the API related resources

它将创建模型、请求、控制器和视图。然后你只需运行路由命令来创建路由。

迁移

有时我们可能需要从表中创建一个迁移文件。然后这个命令将非常有用。它将生成你的迁移文件所需的所有必要代码。因此,你的迁移文件已经准备好使用。

php artisan laracrud:migration users

自定义代码模板

代码风格因开发者而异。因此,您可以控制代码的生成方式。代码模板按文件夹组织在 resources/vendor/laracrud/templates 中。前往那里并更改样式。之后,您的代码将通过读取这些文件来生成。 请勿删除或更改 @@placeHolder@@。它将被应用程序替换

NB:仅适用于 mysql 数据库

建议在使用之前查看生成的文件。

喜欢我的工作?如果喜欢,在 upwork 上雇用我