📅  最后修改于: 2023-12-03 15:06:55.576000             🧑  作者: Mango
在 Yii2 中,使用命令行生成 CRUD 是非常方便的,只需要一条命令就可以生成完整的增删改查操作代码。本文将介绍如何使用 yii2 generate/crud
命令进行 CRUD 生成,同时提供部分参数的详细解释。
在使用 yii2 generate/crud
命令前,需要确保 Yii2 已经安装成功,可以通过以下命令安装:
composer install yiisoft/yii2
yii generate/crud
命令的基本用法如下:
./yii generate/crud <table-name> [ModelClass] [SearchModelClass] [ControllerClass] [ViewPath] [baseControllerClass]
各参数说明:
table-name
:要生成 CRUD 的数据表名称。ModelClass
:指定生成的 Model 类名,默认为 app\models\<table-name>
。SearchModelClass
:指定生成的搜索 Model 类名,默认为 app\models\<ModelClass>Search
。ControllerClass
:指定生成的控制器类名,默认为 app\controllers\<ModelClass>Controller
。ViewPath
:指定生成视图文件存放路径,默认为 @app/views/<controller-id>
。baseControllerClass
:指定使用的基础控制器类,默认为 \yii\web\Controller
。下面以一个示例进行说明。
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以该数据表为例,使用以下命令生成 CRUD:
./yii generate/crud user
执行后会在当前目录下自动生成如下目录和文件:
controllers/
- UserController.php 控制器类
models/
- User.php Model类
- UserSearch.php 搜索Model类
views/
- user/
- _form.php 表单视图文件
- _search.php 搜索视图文件
- create.php 创建视图文件
- index.php 列表视图文件
- update.php 更新视图文件
具体生成代码可以查看这些文件。
table-name
该参数指定要生成 CRUD 的数据表名称。该参数为必填参数。
ModelClass
该参数指定生成的 Model 类名,默认为 app\models\<table-name>
。
比如对于 user
表,如果不进行指定,则生成的 Model 类名为 app\models\User
。
SearchModelClass
该参数指定生成的搜索 Model 类名,默认为 app\models\<ModelClass>Search
。
比如对于 app\models\User
模型,默认生成的搜索模型名为 app\models\UserSearch
。
ControllerClass
该参数指定生成的控制器类名,默认为 app\controllers\<ModelClass>Controller
。
比如对于 app\models\User
模型,默认生成的控制器名为 app\controllers\UserController
。
ViewPath
该参数指定生成视图文件的目录,视图文件根据控制器 ID 存放在指定目录下。
比如对于 app\controllers\UserController
控制器,默认生成的视图文件会存放在 @app/views/user/
目录下。
baseControllerClass
该参数指定使用的基础控制器类,默认为 \yii\web\Controller
。
该参数可用于应用自定义控制器类,默认情况下为 Yii2 内置的 Controller
类。
使用 Yii2 的 CRUD 生成工具可以大大提升开发效率,减轻开发负担。合理配置各参数可以满足大多数复杂的业务需求。同时,生成的代码也是基于 Yii2 的最佳开发实践,可直接应用于生产环境应用程序中。