Yii 框架使用Gii生成代碼操作示例
本文實(shí)例講述了Yii 框架使用Gii生成代碼操作。分享給大家供大家參考,具體如下:
開始 Gii
Gii 是 Yii 中的一個(gè)模塊。 可以通過(guò)配置應(yīng)用的 modules 屬性開啟它。通常來(lái)講在 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 模塊。你可以直接通過(guò) URL 訪問(wèn) Gii:
http://hostname/index.php?r=gii
信息: 如果你通過(guò)本機(jī)以外的機(jī)器訪問(wèn) Gii,請(qǐng)求會(huì)被出于安全原因拒絕。 你可以配置 Gii 為其添加允許訪問(wèn)的 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 首頁(yè)的鏈接)去生成活動(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)建過(guò)同樣的文件,使用 Gii 會(huì)覆寫它, 點(diǎn)擊文件名旁邊的 diff 能查看現(xiàn)有文件與將要 生成的文件的內(nèi)容區(qū)別。
想要覆寫已存在文件,選中 “overwrite” 下的復(fù)選框然后點(diǎn)擊 “Generator”。如果是新文件,只點(diǎn)擊 “Generator” 就好。
接下來(lái)你會(huì)看到一個(gè)包含已生成文件的說(shuō)明頁(yè)面。如果生成過(guò)程中覆寫過(guò)文件, 還會(huì)有一條信息說(shuō)明代碼是重新生成覆蓋的。
生成 CRUD 代碼
CRUD 代表增,查,改,刪操作,這是絕大多數(shù) Web 站點(diǎn)常用的數(shù)據(jù)處理方式。選擇 Gii 中的 “CRUD Generator” (點(diǎn)擊 Gii 首頁(yè)的鏈接)去創(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)建過(guò) controllers/CountryController.php 和 views/country/index.php 文件(在指南的使用數(shù)據(jù)庫(kù)章節(jié)), 選中 “overwrite” 下的復(fù)選框覆寫它們(之前的文件沒(méi)能全部支持 CRUD)。
試運(yùn)行 ¶
用瀏覽器訪問(wèn)下面的 URL 查看生成代碼的運(yùn)行:
http://hostname/index.php?r=country/index
可以看到一個(gè)柵格顯示著從數(shù)據(jù)表中讀取的國(guó)家數(shù)據(jù)。支持在列頭對(duì)數(shù)據(jù)進(jìn)行排序, 輸入篩選條件進(jìn)行篩選。
可以瀏覽詳情,編輯,或刪除柵格中的每個(gè)國(guó)家。 還可以點(diǎn)擊柵格上方的 “Create Country” 按鈕通過(guò)表單創(chuàng)建新國(guó)家。


下面列出由 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ù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(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ò)的問(wèn)題及解決方法
- MyBatis-plus+達(dá)夢(mèng)數(shù)據(jù)庫(kù)實(shí)現(xiàn)自動(dòng)生成代碼的示例
- Spring Boot中使用IntelliJ IDEA插件EasyCode一鍵生成代碼詳細(xì)方法
- 如何使用mybatis-generator自動(dòng)生成代碼
- 一個(gè)能生成精美代碼圖片的工具Carbon!讓看代碼成為一種享受
相關(guān)文章
php實(shí)現(xiàn)屏蔽掉黑帽SEO的搜索關(guān)鍵字
這篇文章主要介紹了php實(shí)現(xiàn)屏蔽掉黑帽SEO的搜索關(guān)鍵字的相關(guān)資料,這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04
淺析Yii2 GridView實(shí)現(xiàn)下拉搜索教程
這篇文章主要介紹了淺析Yii2 GridView實(shí)現(xiàn)下拉搜索教程的相關(guān)資料,需要的朋友可以參考下2016-04-04
tp5 實(shí)現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序
今天小編就為大家分享一篇tp5 實(shí)現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
用 Composer構(gòu)建自己的 PHP 框架之設(shè)計(jì) MVC
幾乎所有人都是通過(guò)學(xué)習(xí)某個(gè)框架來(lái)了解 MVC 的,這樣可能框架用的很熟,一旦離了框架一個(gè)簡(jiǎn)單的頁(yè)面都寫不了,更不要說(shuō)自己設(shè)計(jì) MVC 架構(gòu)了,其實(shí)這里面也沒(méi)有那么多門道,原理非常清晰2014-10-10
詳解WordPress開發(fā)中過(guò)濾屬性以及Sql語(yǔ)句的函數(shù)使用
這篇文章主要介紹了WordPress開發(fā)中過(guò)濾屬性以及Sql語(yǔ)句的函數(shù)使用,分別是對(duì)esc_attr()函數(shù)和esc_sql()函數(shù)的講解,需要的朋友可以參考下2015-12-12
laravel實(shí)現(xiàn)批量更新多條記錄的方法示例
最近在使用Laravel,想批量插入近千條數(shù)據(jù),通過(guò)網(wǎng)上找到了相關(guān)的解決方法,所以下面這篇文章主要給大家介紹了關(guān)于laravel實(shí)現(xiàn)批量更新多條記錄的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10

