2016-12-13 6 views
0

J'ai besoin de générer un fichier modèle sans l'utilisation de Gii. Y a-t-il une commande Yii?Yii générer le modèle sans Gii

$table = "myTable"; 
Yii::app()->generateModel($table); // ? 
+0

Quelle version Yii utilisez-vous? Yii 1.x? –

+0

Yii Framework 1.1.17 – Zombyii

+0

S'il vous plaît voir ma réponse. J'espère que cela aide –

Répondre

1

Peut-être est officiellement obsolète, vous pouvez générer du code avec Yii Command Line Tools

Je l'ai testé avec Yû 1.1.17.

Vous devez d'abord créer un nouveau fichier sur protected/commands appelé par exemple NewmodelCommand.phpto create a new yii command. Nous devons éviter d'utiliser l'outil interactif shell et la commande d'appel directement à partir de notre code dans les contrôleurs, les modèles, etc. Pour l'obtenir, nous héritons de la classe de base Yii ModelCommand. Cette classe force à l'origine la personne à taper sur un shell interactif.

<?php 

Yii::import('system.cli.commands.shell.ModelCommand'); 


class NewmodelCommand extends ModelCommand 
{ 

} 

C'est tout. Vous pouvez tester la commande de CLI dans votre système d'exploitation. Dans Linux, ouvrez votre terminal et aller à /protected/ répertoire et tapez:

./yiic 

Vous verrez quelque chose comme ceci:

... 
The following commands are available: 
- message 
- migrate 
- newmodel 
- shell 
- webapp 
... 

jouer un peu avec elle. Tapez à nouveau:

./yiic newmodel 

Et vous verrez toute l'aide de commande et la documentation.

Pour générer un modèle avec cette commande, vous devez avoir au moins model_name comme premier paramètre. Commande utilisera un même modèle que le nom de la table de base de données:

./yiic newmodel MyNewModel 

Si vous avez un autre nom de modèle et base de données:

./yiic newmodel MyNewModel tbl_new_model 

Si vous avez des problèmes en utilisant yiic, localiser/connecter votre db, etc, faire Assurez-vous de configurer correctement votre environnement de console sur protected/config/console.php et check all official docs about Yii console applications.

Enfin, dans votre code, vous pouvez utiliser votre commande que vous voulez:

$path = '/full/path/to/protected'; 
$new_model_name = 'MyNewModel'; 
shell_exec($path . "/./yiic newmodel $new_model_name"); 
2

Ne pensez pas qu'il existe une commande. Vous pouvez créer le modèle, ou la commande, vous-même. L'autre option serait de faire les demandes à Gii via curl.