Yii 通過Gii實現CRUD與生成module
開發工具:NetBeans IDE(使用Eclipse PHP Studio亦可) ,wampserver
數據庫:mySQL
相關完整參考工程鏈接:Yii實現用戶註冊登錄、ajax、圖片上傳、modules編程基礎例程(內置完整工程及使用說明)
【1】創建和連接數據庫
創建數據庫message,並修改 config/main.php 的db 信息
建立user表
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`profile` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;
【2】設置Gii ,並設置登錄密碼(在 protected / config / main.php)
【3】進入gii設置工程(在工程地址末端加 “ ?r=gii ” ),進入後輸入設置的密碼進行登錄
【3-1】如果設置了僞靜態,進入gii的地址由原來的 localhost/system/index.php?r=gii 改爲 localhost/system/gii 或者是本地ip/system/gii
(1)在config/main.php的components/urlManager中設置
'urlManager' => array(
'urlFormat'=>'path',
'urlSuffix'=>'.html',
'showScriptName' => FALSE
)
(2)需要在httpd.conf服務器中配置:
#LoadModule rewrite_module modules/mod_rewrite.so
去除前面的#
LoadModule rewrite_module modules/mod_rewrite.so
(3)AllowOverride None 修改爲:AllowOverride All
【3-2】輸入登錄gii地址,出現 “exception 'CDbException' with message 'CDbConnection.connectionStringcannot be empty.' in ..\framework\db\CDbConnection.php:370 ”的錯誤解決方法
錯誤顯示如下:
出現問題的原因是在config/main.php中沒有設置'db',因此要在相應的地方設置數據庫連接
【4】根據表的結構生成表的模型類
點擊下圖的generate生成模型類User.php
如果出現“The code has been generated successfully
”表示文件生成成功
【5】使用GII生成對錶user的CRUD操作類
這樣,使用 GII 就能生成UserController 控制器、 User 模型 和 視圖文件
【6】訪問生成的工程
可以通過設置按鈕和路徑訪問
最終可以訪問並能進行CRUD操作
【7】在生成的模塊modules下使用Gii生成模型models和控制器controllers
如在modules/shop下生成models
進入gii後修改生成model的路徑Model Path到相應的模塊下即可
訪問生成的modules下的模塊
(地址要指向modules下的shop,即modules/shop/views/shop/index.php)
*引用外部的js、css文件,可以參考網上其他的方法(在modules下對應的模塊新建assets文件夾,再進行配置),也可以直接在工程根目錄下新建存放js和css的文件夾,訪問更方便。