Yii 生成没有 Gii 的模型
Yii generate model without Gii
我需要在不使用 Gii 的情况下生成模型文件。 Yii 有什么命令吗?
$table = "myTable";
Yii::app()->generateModel($table); // ?
不要以为有命令。您可以自己创建模型或命令。其他选择是通过 curl 向 Gii 发出请求。
可能已正式弃用,您可以使用 Yii Command Line Tools
生成代码
我已经用 Yii 1.1.17 测试过了。
首先您需要在 protected/commands
上创建一个新文件,例如 NewmodelCommand.php
to create a new yii command. We need to avoid to use shell interactive tool and call command directly from our code in controllers, models, etc. To get it, we inherit Yii core class ModelCommand
。这 class 最初是强制人们在交互式 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
作为第一个参数。命令将使用与数据库相同的模型名称 table 名称:
./yiic newmodel MyNewModel
如果您有不同的模型和数据库名称:
./yiic newmodel MyNewModel tbl_new_model
如果您在使用 yiic、locating/connecting 您的数据库等方面遇到问题,请确保在 protected/config/console.php and 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" );
我需要在不使用 Gii 的情况下生成模型文件。 Yii 有什么命令吗?
$table = "myTable";
Yii::app()->generateModel($table); // ?
不要以为有命令。您可以自己创建模型或命令。其他选择是通过 curl 向 Gii 发出请求。
可能已正式弃用,您可以使用 Yii Command Line Tools
生成代码我已经用 Yii 1.1.17 测试过了。
首先您需要在 protected/commands
上创建一个新文件,例如 NewmodelCommand.php
to create a new yii command. We need to avoid to use shell interactive tool and call command directly from our code in controllers, models, etc. To get it, we inherit Yii core class ModelCommand
。这 class 最初是强制人们在交互式 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
作为第一个参数。命令将使用与数据库相同的模型名称 table 名称:
./yiic newmodel MyNewModel
如果您有不同的模型和数据库名称:
./yiic newmodel MyNewModel tbl_new_model
如果您在使用 yiic、locating/connecting 您的数据库等方面遇到问题,请确保在 protected/config/console.php and 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" );