digitaldream / laracrud
Requires
- php: ^8.0
- digitaldream/dbreader: ~1.0
- laravel/framework: ^8.0
Suggests
- intervention/image: For Image
This package is auto-updated.
Last update: 2024-09-18 12:44:14 UTC
README
您是否有一个结构良好的数据库,并想在它上面构建一个Laravel应用程序?通过使用这个工具,您可以生成具有必要方法和属性的模型,带有规则的请求类,从控制器方法和其参数生成路由,并具有完整功能的表单以及验证错误消息等,所有这些都可以通过单行命令完成。那么,让我们开始吧。 查看演示代码 和 幻灯片
安装
composer require digitaldream/laracrud --dev
设置
- 将此行添加到config/app.php的providers数组中。如果您正在使用laravel 5.5或更高版本,则不需要此步骤
LaraCrud\LaraCrudServiceProvider::class
- 然后运行
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
一次性创建所有内容
如果我们需要所有命令,那么只需执行以下操作
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 上雇用我