#laravel #laravel-artisan
#laravel #laravel-artisan
Вопрос:
Я создаю команду с помощью make:command
php artisan make:command ResetDBCommand
Затем я хотел бы запустить команду two в обработчике
php artisan ide:models
php artisan db:seed
Однако у меня не получается автоматически запускать две команды с помощью приведенных ниже кодов
Artisan::call('db:seed');
$console->writeln('db:seed done.');
Artisan::call('ide:models--force');
$console->writeln('ide:models done.');
Ошибка:
The command "ide:models--force" does not exist.
как я могу это сделать?
Комментарии:
1. обычно между именем команды и ее аргументами и параметрами есть пробел … но также есть синтаксис для вызова команд с параметрами
2. @lagbox Я пробовал ‘ide: models —force’ раньше, и я получил эту ошибку — команда «ide: модели» не существует
3. существует ли команда?
4. @lagbox это не из php artisan. Это происходит от barryvdh / laravel-ide-helper. Но также мне нужно запустить настройку обновления через консоль с помощью команды — php artisan ide: models затем введите ‘y’
5. Разве это не команда
ide-helper:models
?
Ответ №1:
Правильная команда — ide-helper:models
вы можете подтвердить это, если выполните:
php artisan help ide:models
Вы получаете:
[…]
Использование:
ide-помощник: модели [параметры] [—] [<модель> …]
это указывает на то, что Laravel автоматически разрешает эту команду при вызове в командной строке. Однако такой механизм разрешения не существует при программном вызове.
Другая проблема заключается в том, что --force
это недопустимый вариант в ide-helper:models
том, что вы можете сделать, хотя:
Artisan::call('db:seed');
$console->writeln('db:seed done.');
// Uncomment one of the two
// Artisan::call('ide-helper:models --nowrite'); // Only write metadata in the _ide_helper_models.php file
// Artisan::call('ide-helper:models --write'); // Write metadata on models
// ------
$console->writeln('ide:models done.');
Выберите тот, который вы предпочитаете соответственно
Протестировано выше в Laravel 8