【问题标题】:Laravel, call Artisan from php differs from command lineLaravel,从 php 调用 Artisan 与命令行不同
【发布时间】:2019-07-24 07:37:33
【问题描述】:

我有一个调用 Artisan 门面执行的路由:

Artisan::call('queue:work --once');

我得到:

但这很奇怪,因为在命令行中,如果我这样做:

php artisan queue:work --once

一切正常:

我可以使用其他路由调用例如:

Artisan::call('config:clear');

而且工作正常。有什么想法吗?

【问题讨论】:

    标签: laravel laravel-artisan


    【解决方案1】:

    以 -- 开头的选项值不会传递给字符串 你可以试试:

    Artisan::call('queue:work', ['--once' => true]); 
    

    【讨论】:

      【解决方案2】:

      Laravel 5.8 引入了这种调用工匠命令的新方法:

      Artisan::call('queue:work --once');
      

      在以前的版本中使用这个:

      Artisan::call('queue:work', ['--once' => true]); 
      

      【讨论】:

        【解决方案3】:

        要从代码中调用 artisan 命令并传递一些选项,您需要使用数组作为 Artisan::call() 的第二个参数

        像这样:

        Artisan::call('queue:work', ['--once' => true]); // or whatever options you need
        

        【讨论】:

          猜你喜欢
          • 2021-02-11
          • 2020-01-30
          • 2019-08-18
          • 1970-01-01
          • 2020-03-17
          • 2015-08-29
          • 2019-10-26
          • 2021-05-10
          • 2017-10-10
          相关资源
          最近更新 更多