1. 程式人生 > 程式設計 >Yii 框架使用Gii生成程式碼操作示例

Yii 框架使用Gii生成程式碼操作示例

本文例項講述了Yii 框架使用Gii生成程式碼操作。分享給大家供大家參考,具體如下:

開始 Gii

Gii 是 Yii 中的一個模組。 可以通過配置應用的 modules 屬性開啟它。通常來講在 config/web.php 檔案中會有以下配置程式碼:

$config = [ ... ];
 
if (YII_ENV_DEV) {
  $config['bootstrap'][] = 'gii';
  $config['modules']['gii'] = [
    'class' => 'yii\gii\Module',];
}

這段配置表明,如果當前是開發環境, 應用會包含 gii

模組,模組類是 yii\gii\Module。

如果你檢查應用的入口指令碼 web/index.php, 將看到這行程式碼將 YII_ENV_DEV 設為 true:

defined('YII_ENV') or define('YII_ENV','dev');

鑑於這行程式碼的定義,應用處於開發模式下,按照上面的配置會開啟 Gii 模組。你可以直接通過 URL 訪問 Gii:

http://hostname/index.php?r=gii

資訊: 如果你通過本機以外的機器訪問 Gii,請求會被出於安全原因拒絕。 你可以配置 Gii 為其新增允許訪問的 IP 地址:

'gii' => [
  'class' => 'yii\gii\Module','allowedIPs' => ['127.0.0.1','::1','192.168.0.*','192.168.178.20'] // 按需調整這裡
],

生成活動記錄類

選擇 “Model Generator” (點選 Gii 首頁的連結)去生成活動記錄類。並像這樣填寫表單:

  • Table Name: country
  • Model Class: Country

然後點選 “Preview” 按鈕。你會看到 models/Country.php 被列在將要生成的檔案列表中。可以點選檔名預覽內容。

如果你已經建立過同樣的檔案,使用 Gii 會覆寫它, 點選檔名旁邊的 diff 能檢視現有檔案與將要 生成的檔案的內容區別。

想要覆寫已存在檔案,選中 “overwrite” 下的複選框然後點選 “Generator”。如果是新檔案,只點擊 “Generator” 就好。

接下來你會看到一個包含已生成檔案的說明頁面。如果生成過程中覆寫過檔案, 還會有一條資訊說明程式碼是重新生成覆蓋的。

生成 CRUD 程式碼

CRUD 代表增,查,改,刪操作,這是絕大多數 Web 站點常用的資料處理方式。選擇 Gii 中的 “CRUD Generator” (點選 Gii 首頁的連結)去建立 CRUD 功能。本例 “country” 中需要這樣填寫表單:

  • Model Class: app\models\Country
  • Search Model Class: app\models\CountrySearch
  • Controller Class: app\controllers\CountryController

然後點選 “Preview” 按鈕。你會看到下述將要生成的檔案列表。

Yii 框架使用Gii生成程式碼操作示例

如果你之前建立過 controllers/CountryController.phpviews/country/index.php 檔案(在指南的使用資料庫章節), 選中 “overwrite” 下的複選框覆寫它們(之前的檔案沒能全部支援 CRUD)。

試執行 ¶

用瀏覽器訪問下面的 URL 檢視生成程式碼的執行:

http://hostname/index.php?r=country/index

可以看到一個柵格顯示著從資料表中讀取的國家資料。支援在列頭對資料進行排序, 輸入篩選條件進行篩選。

可以瀏覽詳情,編輯,或刪除柵格中的每個國家。 還可以點選柵格上方的 “Create Country” 按鈕通過表單建立新國家。

Yii 框架使用Gii生成程式碼操作示例

Yii 框架使用Gii生成程式碼操作示例

下面列出由 Gii 生成的檔案,以便你研習功能和實現, 或修改它們。

  • 控制器:controllers/CountryController.php
  • 模型:models/Country.phpmodels/CountrySearch.php
  • 檢視:views/country/*.php

更多關於Yii相關內容感興趣的讀者可檢視本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向物件程式設計入門教程》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧彙總》

希望本文所述對大家基於Yii框架的PHP程式設計有所幫助。