首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Yii Framework 入門重點整理:Gii 建模、模組建立、路由與權限控制

     編輯:PHP 綜合知識

Yii 開發必備知識點彙總

本文整理自實戰經驗,涵蓋 Gii 代碼生成、模組配置、路由解析、存取控制、資料查詢與 URL 美化等核心主題。

1. 建立應用骨架

yiic webapp /web/demo

2. Gii 產生 Model 與 CRUD 注意事項

  • Model Generator:Table Name 必須填寫完整表名(含前綴)。
  • Crud Generator:Model Class 填寫模型類別名稱(首字大寫),需與 protected/models/ 實際檔名一致,大小寫敏感。

Model Generator 介面

Crud Generator 介面

3. 模組建立與配置

Gii 產生模組時 Module ID 建議小寫。main.php 中配置:

'modules' => array(
    'admin' => array(
        'class' => 'application.modules.admin.AdminModule',
    ),
),

4. 路由與別名

  • system → framework 目錄
  • application → protected/
  • application.modules.Admin.AdminModule → protected/modules/Admin/AdminModule.php

5. 控制器 accessRules 範例

public function accessRules() {
    return array(
        array('allow', 'actions' => array('index','view'), 'users' => array('*')),
        array('allow', 'actions' => array('create','update'), 'users' => array('@')),
        array('allow', 'actions' => array('admin','delete'), 'users' => array('admin')),
        array('deny', 'users' => array('*')),
    );
}

* 所有用戶,@ 已驗證用戶,admin 指定用戶名。

6. 取得當前登入用戶 ID

Yii::app()->user->id

7. Getter/Setter 與虛擬屬性

public function getUrl() {
    return Yii::app()->createUrl('post/view', array('id' => $this->id, 'title' => $this->title));
}

8. Model rules() 驗證規則

public function rules() {
    return array(
        array('news_title, news_content', 'required'),
        array('news_title', 'length', 'max' => 128),
        array('create_time, update_time', 'safe'), // 非表單欄位需加 safe
    );
}

9. 視圖傳遞資料三種方式

  1. 視圖內直接
  2. 控制器 $this->render('view', array('time' => $time))
  3. 控制器定義公有屬性 public $time,視圖用 $this->time

10. 資料庫查詢範例

Post::model()->findAll(array(
    'condition' => 'status=:status',
    'params' => array(':status' => 1),
    'order' => 'create_time DESC',
    'limit' => 10,
));

11. URL 美化與隱藏 index.php

'urlManager' => array(
    'urlFormat' => 'path',
    'showScriptName' => false,
    'rules' => array(
        'posts' => 'post/list',
        'post/' => 'post/view',
    ),
),

專案根目錄 .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

12. Widget 組件化

class Banner extends CPortlet {
    protected function renderContent() { $this->render('banner'); }
}

視圖中呼叫:widget('Banner'); ?>

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved