2013-01-03 117 views
2

從配置/ main.php:GII未檢測模型生成MySQL表

'db'=>array(
     'connectionString' => 'mysql:host=localhost;dbname=testdb', 
     'emulatePrepare' => true, 
     'username' => 'root', 
     'password' => '', 
     'charset' => 'utf8', 
    ), 

當我使用GII模型生成器(HTTP://localhost/yii/testdelete/index.php R = GII/model),並嘗試在表名中加入「post」或「user」,然後單擊「Preview」它會顯示:

表'post'不存在。

我希望能夠使用這些表創建模型。

從phpMyAdmin的導出:

-- Host: 127.0.0.1 
-- Database: `testdb` 

CREATE TABLE IF NOT EXISTS postid INT(10)無符號NOT NULL AUTO_INCREMENT, created_on INT(11)無符號NOT NULL, title VARCHAR(255)COLLATE utf8_unicode_ci NOT NULL, content文本COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY(id) )ENGINE = InnoDB的默認字符集= UTF8 COLLATE = utf8_unicode_ci AUTO_INCR EMENT = 1;

CREATE TABLE IF NOT EXISTS userid INT(10)無符號NOT NULL AUTO_INCREMENT, username VARCHAR(200)COLLATE utf8_unicode_ci NOT NULL, password炭(40)COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY(id) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT = 1;

回答

2

如果您在表名稱字段中鍵入「s」,自動完成應該彈出兩個表。

檢查

  1. 已保存的配置文件(將其關閉並重新打開,以驗證其內容)
  2. 你有一個DB部分在你的配置文件(也許你有sqlite的一個覆蓋它)
  3. 檢查你是否在同一個mysql實例上。 phpMyAdmin主機127.0.0.1並不意味着它是相同的實例,其實例phpMyAdmin運行(檢查網址)。從命令行登錄(或使用美妙的桌面客戶端http://www.heidisql.com/)在本地主機數據庫中徘徊
+0

嗨,感謝您提供關於自動完成的提示。無論如何,唯一會出現的表是tbl_user。我修改了config/console.php並註釋掉了''connectionString'=>'sqlite:'。dirname(__ FILE __)。'/ ../data/testdrive.db',「並添加了mysql信息,現在gii正常使用mysql表'post'和'user'。 –

+0

如果我把config/console.php放回去,它只是再次使用config/main.php中的數據庫信息... –