本文實(shí)例講述了Yii 框架使用Gii生成代碼操作。分享給大家供大家參考,具體如下:
開始 Gii
Gii 是 Yii 中的一個(gè)模塊。 可以通過配置應(yīng)用的 modules 屬性開啟它。通常來講在 config/web.php
文件中會(huì)有以下配置代碼:
$config = [ ... ];
if (YII_ENV_DEV) {
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
];
}
這段配置表明,如果當(dāng)前是開發(fā)環(huán)境, 應(yīng)用會(huì)包含 gii
模塊,模塊類是 yii\gii\Module。
如果你檢查應(yīng)用的入口腳本 web/index.php
, 將看到這行代碼將 YII_ENV_DEV
設(shè)為 true:
defined('YII_ENV') or define('YII_ENV', 'dev');
鑒于這行代碼的定義,應(yīng)用處于開發(fā)模式下,按照上面的配置會(huì)打開 Gii 模塊。你可以直接通過 URL 訪問 Gii:
http://hostname/index.php?r=gii
信息: 如果你通過本機(jī)以外的機(jī)器訪問 Gii,請求會(huì)被出于安全原因拒絕。 你可以配置 Gii 為其添加允許訪問的 IP 地址:
'gii' => [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'] // 按需調(diào)整這里
],
生成活動(dòng)記錄類
選擇 “Model Generator” (點(diǎn)擊 Gii 首頁的鏈接)去生成活動(dòng)記錄類。并像這樣填寫表單:
- Table Name:
country
- Model Class:
Country
然后點(diǎn)擊 “Preview” 按鈕。你會(huì)看到 models/Country.php
被列在將要生成的文件列表中??梢渣c(diǎn)擊文件名預(yù)覽內(nèi)容。
如果你已經(jīng)創(chuàng)建過同樣的文件,使用 Gii 會(huì)覆寫它, 點(diǎn)擊文件名旁邊的 diff
能查看現(xiàn)有文件與將要 生成的文件的內(nèi)容區(qū)別。
想要覆寫已存在文件,選中 “overwrite” 下的復(fù)選框然后點(diǎn)擊 “Generator”。如果是新文件,只點(diǎn)擊 “Generator” 就好。
接下來你會(huì)看到一個(gè)包含已生成文件的說明頁面。如果生成過程中覆寫過文件, 還會(huì)有一條信息說明代碼是重新生成覆蓋的。
生成 CRUD 代碼
CRUD 代表增,查,改,刪操作,這是絕大多數(shù) Web 站點(diǎn)常用的數(shù)據(jù)處理方式。選擇 Gii 中的 “CRUD Generator” (點(diǎn)擊 Gii 首頁的鏈接)去創(chuàng)建 CRUD 功能。本例 “country” 中需要這樣填寫表單:
- Model Class:
app\models\Country
- Search Model Class:
app\models\CountrySearch
- Controller Class:
app\controllers\CountryController
然后點(diǎn)擊 “Preview” 按鈕。你會(huì)看到下述將要生成的文件列表。

如果你之前創(chuàng)建過 controllers/CountryController.php
和 views/country/index.php
文件(在指南的使用數(shù)據(jù)庫章節(jié)), 選中 “overwrite” 下的復(fù)選框覆寫它們(之前的文件沒能全部支持 CRUD)。
試運(yùn)行 ¶
用瀏覽器訪問下面的 URL 查看生成代碼的運(yùn)行:
http://hostname/index.php?r=country/index
可以看到一個(gè)柵格顯示著從數(shù)據(jù)表中讀取的國家數(shù)據(jù)。支持在列頭對(duì)數(shù)據(jù)進(jìn)行排序, 輸入篩選條件進(jìn)行篩選。
可以瀏覽詳情,編輯,或刪除柵格中的每個(gè)國家。 還可以點(diǎn)擊柵格上方的 “Create Country” 按鈕通過表單創(chuàng)建新國家。


下面列出由 Gii 生成的文件,以便你研習(xí)功能和實(shí)現(xiàn), 或修改它們。
- 控制器:
controllers/CountryController.php
- 模型:
models/Country.php
和 models/CountrySearch.php
- 視圖:
views/country/*.php
更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- 詳解在idea 中使用Mybatis Generator逆向工程生成代碼
- IDEA的崛起自己定義快捷生成代碼塊的詳細(xì)步驟
- Mybatis generator如何自動(dòng)生成代碼
- Mybatis generator自動(dòng)生成代碼插件實(shí)例解析
- 使用MyBatisPlus自動(dòng)生成代碼后tomcat運(yùn)行報(bào)錯(cuò)的問題及解決方法
- MyBatis-plus+達(dá)夢數(shù)據(jù)庫實(shí)現(xiàn)自動(dòng)生成代碼的示例
- Spring Boot中使用IntelliJ IDEA插件EasyCode一鍵生成代碼詳細(xì)方法
- 如何使用mybatis-generator自動(dòng)生成代碼
- 一個(gè)能生成精美代碼圖片的工具Carbon!讓看代碼成為一種享受