我需要在不使用Gii的情况下生成模型文件。有没有命令Yii?
$table = "myTable";
Yii::app()->generateModel($table); // ?
答案 0 :(得分:2)
不要以为有命令。您可以自己创建模型或命令。其他选择是通过curl向Gii发出请求。
答案 1 :(得分:1)
也许已正式弃用,您可以使用Yii Command Line Tools
生成代码我用Yii 1.1.17进行了测试。
首先,您需要在protected/commands
上创建一个名为NewmodelCommand.php
to create a new yii command的新文件。我们需要避免在控制器,模型等中直接使用shell交互工具和调用命令。为了得到它,我们继承了Yii核心类ModelCommand
。该类最初强制人在交互式shell上键入。
<?php
Yii::import('system.cli.commands.shell.ModelCommand');
class NewmodelCommand extends ModelCommand
{
}
就是这样。您可以将CLI中的命令测试到您的操作系统中。在Linux中,打开终端并转到/protected/
目录并键入:
./yiic
你会看到这样的事情:
...
The following commands are available:
- message
- migrate
- newmodel
- shell
- webapp
...
用它玩一点。再次输入:
./yiic newmodel
您将看到所有命令帮助和文档。
要使用此命令生成模型,您至少需要model_name
作为第一个参数。命令将使用与数据库表名称相同的模型名称:
./yiic newmodel MyNewModel
如果您有不同的型号和数据库名称:
./yiic newmodel MyNewModel tbl_new_model
如果您在使用yiic,查找/连接数据库等方面遇到麻烦,请务必在protected/config/console.php和check all official docs about Yii console applications上正确设置您的控制台环境。
最后,在您的代码中,您可以根据需要使用命令:
$path = '/full/path/to/protected';
$new_model_name = 'MyNewModel';
shell_exec( $path . "/./yiic newmodel $new_model_name" );