运行 php artisan ide:models 自动

Running php artisan ide:models automatically

我通过make:command

创建命令
php artisan make:command ResetDBCommand

然后我想运行处理程序中的两个命令

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.

我该怎么做?

正确的命令是ide-helper:models如果你这样做你可以确认这一点:

php artisan help ide:models

你得到:

[...]
Usage:
ide-helper:models [options] [--] [<model>...]

表示在命令行调用时Laravel确实自动解析该命令。然而,当以编程方式调用它时,这种解析机制不存在。

另一个问题是 --forceide-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

中测试了以上内容