2013-01-03 54 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中的数据库信息... –