Yii генерирует модель без Gii

Мне нужно создать файл модели без использования Gii. Есть ли какая-нибудь команда Yii?

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

    Возможно, официально устарел, вы можете сгенерировать код с помощью Yii Command Line Tools

    Я тестировал его с помощью Yii 1.1.17.

    Сначала вам нужно создать новый файл на protected/commands называемый, например, NewmodelCommand.php чтобы создать новую команду NewmodelCommand.php . Нам нужно избегать использования интерактивного инструмента оболочки и команды вызова непосредственно из нашего кода в контроллерах, моделях и т. Д. Чтобы получить это, мы наследуем основной класс 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, найдите / подключите свой db и т. Д., Обязательно настройте свою консольную среду на protected / config / console.php и проверьте все официальные документы о консольных приложениях Yii .

    Наконец, в вашем коде вы можете использовать свою команду, как хотите:

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

    Не думайте, что есть команда. Вы можете создать модель или команду самостоятельно. Другим вариантом было бы сделать запросы на Gii через curl.