Yii生成没有Gii的模型

时间:2016-12-13 14:11:58

标签: php yii model frameworks gii

我需要在不使用Gii的情况下生成模型文件。有没有命令Yii?

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

2 个答案:

答案 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.phpcheck all official docs about Yii console applications上正确设置您的控制台环境。

最后,在您的代码中,您可以根据需要使用命令:

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