📜  使用命令 yii2 生成 crud (1)

📅  最后修改于: 2023-12-03 15:06:55.576000             🧑  作者: Mango

使用命令 yii2 生成 crud

在 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 的最佳开发实践,可直接应用于生产环境应用程序中。