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); // ?
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); // ?
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.php
to 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");
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.
Quelle version Yii utilisez-vous? Yii 1.x? –
Yii Framework 1.1.17 – Zombyii
S'il vous plaît voir ma réponse. J'espère que cela aide –