在laravel控制器中运行自定义工匠命令

时间:2019-01-25 03:31:09

标签: php laravel

我有以下自定义命令:

php artisan down --message="this is my custom message."

现在,我想在控制器中的输入字段中使用此命令。

我知道我可以使用Call之类的Artisan::call('down');方法,但是我的问题是如何在该调用方法中添加--message=""部分?

数据

这是我当前发送给控制器的内容:

array:3 [▼
  "_token" => "wqHyTNmDhArtonB0gwhIbCipSsStv0WnoASQm34u"
  "maintenance_message" => "this is my custom message."
  "maintenance" => "active"
]

现在基于maintenance的值,我将调用Artisan::call('up');Artisan::call('down');,但问题是如何将maintenance_message添加到其中? < / p>

代码

这是我当前的功能。

public function MaintenanceMode(Request $request){
  if($request->input('maintenance') == 'active'){
    //maintenance_message
    Session::flash('danger', 'Site is successfully in maintenance mode.');
    return Artisan::call('down');
  }else{
    //maintenance_message
    Session::flash('success', 'Site is ONLINE.');
    return Artisan::call('up');
  }
}

有什么主意吗?

2 个答案:

答案 0 :(得分:2)

文档中有一些示例:

https://laravel.com/docs/5.7/artisan#programmatically-executing-commands

  

call方法接受命令名称或类作为第一个参数,并将命令参数数组作为第二个参数。退出代码将返回:

Route::get('/foo', function () {
    $exitCode = Artisan::call('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    //
});

答案 1 :(得分:0)

已解决

这是我将消息部分添加到工匠命令中的操作

return Artisan::call('down', ['--message'     => $request->input('maintenance_message')]);

希望它可以帮助别人。