W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本章將介紹如何使用?Gii?去自動(dòng)生成 Web 站點(diǎn)常用功能的代碼。使用 Gii 生成代碼非常簡(jiǎn)單,只要按照 Gii 頁(yè)面上的介紹輸入正確的信息即可。
貫穿本章節(jié),你將會(huì)學(xué)到:
Gii?是 Yii 中的一個(gè)模塊??梢酝ㄟ^(guò)配置應(yīng)用的 yii\base\Application::modules 屬性開啟它。通常來(lái)講在?config/web.php
?文件中會(huì)有以下配置代碼:
$config = [ ... ];
if (YII_ENV_DEV) {
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = '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
補(bǔ)充: 如果你通過(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)整這里 ],
選擇 “Model Generator” (點(diǎn)擊 Gii 首頁(yè)的鏈接)去生成活動(dòng)記錄類。并像這樣填寫表單:
country
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 代表增,查,改,刪操作,這是絕大多數(shù) Web 站點(diǎn)常用的數(shù)據(jù)處理方式。選擇 Gii 中的 “CRUD Generator” (點(diǎn)擊 Gii 首頁(yè)的鏈接)去創(chuàng)建 CRUD 功能。本例 “country” 中需要這樣填寫表單:
app\models\Country
app\models\CountrySearch
app\controllers\CountryController
然后點(diǎn)擊 “Preview” 按鈕。你會(huì)看到下述將要生成的文件列表。
[[NEED THE IMAGE HERE / 等待官方補(bǔ)充圖片]]
如果你之前創(chuàng)建過(guò)?controllers/CountryController.php
?和?views/country/index.php
?文件(在指南的使用數(shù)據(jù)庫(kù)章節(jié)),選中 “overwrite” 下的復(fù)選框覆寫它們(之前的文件沒(méi)能全部支持 CRUD)。
用瀏覽器訪問(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
補(bǔ)充:Gii 被設(shè)計(jì)成高度可定制和可擴(kuò)展的代碼生成工具。使用它可以大幅提高應(yīng)用開發(fā)速度。請(qǐng)參考?Gii?章節(jié)了解更多內(nèi)容。
本章學(xué)習(xí)了如何使用 Gii 去生成為數(shù)據(jù)表中數(shù)據(jù)實(shí)現(xiàn)完整 CRUD 功能的代碼。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: