Мне нужно сгенерировать файл модели без использования Gii. Есть ли какая-нибудь команда Yii?Yii генерировать модель без Gii
$table = "myTable";
Yii::app()->generateModel($table); // ?
Мне нужно сгенерировать файл модели без использования Gii. Есть ли какая-нибудь команда Yii?Yii генерировать модель без Gii
$table = "myTable";
Yii::app()->generateModel($table); // ?
Может быть официально устаревшим, вы можете генерировать код с Yii Command Line Tools
Я тестировал его с Yii 1.1.17.
Сначала вам нужно создать новый файл на protected/commands
, названный, например, NewmodelCommand.php
to create a new yii command. Нам нужно избегать использования интерактивного инструмента оболочки и команды вызова непосредственно из нашего кода в контроллерах, моделях и т. Д. Чтобы получить это, мы наследуем основной класс Yii ModelCommand
. Этот класс изначально заставляет человека печатать на интерактивной оболочке.
<?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");
Не думаю, что есть команда. Вы можете создать модель или команду самостоятельно. Другим вариантом было бы сделать запросы на Gii через curl.
Что Yii версии вы используете? Yii 1.x? –
Yii Framework 1.1.17 – Zombyii
См. Мой ответ. Надеюсь, поможет –