Gii 代码生成工具


yii配置Gii工具

为了使用 Gii,首先需要编辑文件 WebRoot/yanshi/protected/main.php 把23行到30行注释去掉,并把password的密码改为“123456”,注意在项目上线时要把gii工具注释掉。如图

	'modules'=>array(
		// uncomment the following to enable the Gii tool
		'gii'=>array(
			'class'=>'system.gii.GiiModule',
			'password'=>'123456',
			// If removed, Gii defaults to localhost only. Edit carefully to taste.
			'ipFilters'=>array('127.0.0.1','::1'),
		),
	),

然后,访问 URL http://hostname/testdrive/index.php?r=gii。这里我们需要输入密码,它是在我们在上面的配置中指定的。如图

2015-11-13_221059.gif

成功后进入gii工具界面如图

2015-11-13_221720.gif

我们以生成一个(CRUD)增删改成的里例子来介绍如何使用Gii工具。

yii配置mysql数据库

为了使用mysql,首先需要编辑文件 WebRoot/yanshi/protected/config/database.php  去掉mysql的配置注释并把其余的代码加上注释如下图

2015-11-13_222740.gif

现在我们要先建立一个yanshi数据库

CREATE DATABASE `yanshi` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

建立表tbl_user或者导入表/yanshi/protected/data/schema.mysql.sql

CREATE TABLE tbl_user (
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(128) NOT NULL,
    password VARCHAR(128) NOT NULL,
    email VARCHAR(128) NOT NULL
);

INSERT INTO tbl_user (username, password, email) VALUES ('test1', 'pass1', 'test1@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test2', 'pass2', 'test2@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test3', 'pass3', 'test3@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test4', 'pass4', 'test4@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test5', 'pass5', 'test5@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test6', 'pass6', 'test6@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test7', 'pass7', 'test7@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test8', 'pass8', 'test8@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test9', 'pass9', 'test9@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test10', 'pass10', 'test10@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test11', 'pass11', 'test11@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test12', 'pass12', 'test12@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test13', 'pass13', 'test13@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test14', 'pass14', 'test14@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test15', 'pass15', 'test15@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test16', 'pass16', 'test16@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test17', 'pass17', 'test17@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test18', 'pass18', 'test18@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test19', 'pass19', 'test19@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test20', 'pass20', 'test20@example.com');
INSERT INTO tbl_user (username, password, email) VALUES ('test21', 'pass21', 'test21@example.com');

注意: 要使用 Yii 的数据库功能,我们需要启用 PHP 的 PDO 扩展和相应的驱动扩展。对于测试应用来说,我们需要启用 php_pdo 和 php_pdo_sqlite 扩展。


yii生成增删该查(CRUD)代码

生成 User 模型

登陆Gii后,点击链接 Model Generator。它将显示下面的模型生成页面,再(Table Name *)属性里输入tbl_user出现如下界面

2015-11-13_224318.gif

在 Model Class 输入框中,输入 User。然后点击 Preview 按钮。这里将展示将要生成的新文件。

2015-11-13_224750.gif

现在点击 Generate 按钮。一个名为 User.php  将生成到 protected/models 目录中。如我们稍后描述的, User 模型类允许我们以面向对象的方式来访问数据表 tbl_user。如图

2015-11-13_224906.gif

生成 CRUD 代码

在创建模型类之后,我们将生成执行 CRUD 操作的代码。我们选择 Gii 中的 Crud Generator,如下所示,

2015-11-13_225127.gif

Model Class 输入框中,输入 User。在 Controller ID 输入框中,输入 user (小写格式)。现在点击 Preview 按钮后出现如图

2015-11-13_225305.gif

点击Generate 按钮。CRUD 代码生成完成了,如图

2015-11-13_225504.gif

代码生成路径为

/yanshi/protected/controllers
/yanshi/protected/views/user

点击 try it now 链接出现user的列表界面,如图

2015-11-13_225640.gif

点击 Manage User 进入user的管理界面,如图

2015-11-13_225808.gif

到此为止一个完整的yii增删改查的模块就做好了,而且我们现在还没有亲手写一行代码。