2013-01-03 2 views
2

De config/main.php:Gii ne détecte pas les tables MySQL dans le créateur de modèle

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

Lorsque j'utilise le générateur de modèle GII (http: //localhost/yii/testdelete/index.php r = GII/modèle) et essayer de mettre « post » ou « utilisateur » dans le nom de la table et cliquez sur « Aperçu » il dit:

Table « post » n'existe pas.

Je veux être en mesure de créer des modèles à l'aide de ces tables.

Exportation de phpMyAdmin:

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

CREATE TABLE IF NOT EXISTS post ( id int (10) unsigned NON AUTO_INCREMENT NULL, created_on int (11) unsigned NOT NULL, title varchar (255) ASSEMBLER utf8_unicode_ci NOT NULL, content texte COLLATE utf8_unicode_ci NOT NULL, clé primaire (id) ) MOTEUR = InnoDB DEFAULT charset = utf8 COLLATE = utf8_unicode_ci AUTO_INCR EMENT = 1;

CREATE TABLE SINON EXISTE user ( id int (10) non signé NOT AUTO_INCREMENT NULL, username varchar (200) cotejo utf8_unicode_ci NOT NULL, password char (40) cotejo utf8_unicode_ci NOT NULL, clé primaire (id) ) MOTEUR = InnoDB DEFAULT CHARSET = UTF-8 ASSEMBLER = utf8_unicode_ci AUTO_INCREMENT = 1;

Répondre

2

Si vous tapez « s » en auto champ Nom de la table complète devrait apparaître avec les deux tables.

vérifier que

  1. vous avez enregistré le fichier de configuration (fermer et ouvrir à nouveau pour vérifier son contenu)
  2. vous avez une section db dans votre fichier de configuration (peut-être vous avez un sqlite écraser)
  3. vérifier que vous êtes sur la même instance de MySQL. phpMyAdmin host 127.0.0.1 ne veut pas dire que c'est la même instance, c'est l'instance phpMyAdmin qui s'exécute (vérifiez l'url). Connectez-vous à partir de la ligne de commande (ou utilisez le merveilleux client de bureau http://www.heidisql.com/) pour fouiller dans la base de données localhost
+0

Salut merci pour l'astuce sur la saisie semi-automatique. Quoi qu'il en soit, la seule table qui apparaîtrait était tbl_user. Je modifié config/console.php et commenté sur " 'connectionString' => 'sqlite:' dirname (__ FILE __) '/ ../data/testdrive.db',.." Et a ajouté les informations MySQL et fonctionne maintenant correctement à l'aide GII les tables mysql 'post' et 'user'. –

+0

Si je remets config/console.php, il utilise à nouveau les informations de la base de données de config/main.php ... –

Questions connexes