使用 Artisan::call() 传递非选项参数

新手上路,请多包涵

在 shell 中,我可以像这样创建一个数据库迁移(例如):

 ./artisan migrate:make --table="mytable" mymigration

使用 Artisan::call() 我不知道如何传递非参数参数(本例中为“mymigration”)。我尝试了以下代码的许多变体:

 Artisan::call('db:migrate', ['--table' => 'mytable', 'mymigration'])

有人有什么想法吗?在此期间,我一直在使用 shell_exec(‘./artisan …’) 但我对这种方法不满意。

原文由 GuruBob 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 917
2 个回答

在 Laravel 5 之前

Artisan::call('db:migrate', ['' => 'mymigration', '--table' => 'mytable'])

Laravel 5 及以上版本

Artisan::call('db:migrate', ['argument-name-as-defined-in-signature-property-of-command' => 'mymigration', '--table' => 'mytable'])

有关详细信息,请参阅其他答案。

原文由 Bower 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 laravel 5.1 中,您可以在从 PHP 代码调用 Artisan 命令时设置带/不带值的选项。

 Artisan::call('your:commandname', ['--optionwithvalue' => 'youroptionvalue', '--optionwithoutvalue' => true]);

在这种情况下,在您的 artisan 命令中;

 $this->option('optionwithvalue'); //returns 'youroptionvalue'

$this->option('optionwithoutvalue'); //returns true

原文由 İlter Kağan Öcal 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏