Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何调用控制台->;命令->;laravel中控制器内部的句柄功能_Php_Laravel - Fatal编程技术网

Php 如何调用控制台->;命令->;laravel中控制器内部的句柄功能

Php 如何调用控制台->;命令->;laravel中控制器内部的句柄功能,php,laravel,Php,Laravel,我想在控制器中调用这个句柄函数 class SendPackageInfoSms extends Command { public function handle($mobile, $msg) { $notify = new Notification; $notify->PackageSMS($mobile, $msg); } } 不可能!!您可以执行命令form controller,但不能调用此函数form controller 您可

我想在控制器中调用这个句柄函数

class SendPackageInfoSms extends Command 
{
   public function handle($mobile, $msg) 
   {
       $notify = new Notification;
       $notify->PackageSMS($mobile, $msg);
   }
}

不可能!!您可以执行命令form controller,但不能调用此函数form controller

您可以通过以下命令直接从控制器调用Laravel命令

Artisan::call('command:signature', [your_parameters_go_here]);
请记住在文件顶部包含Artisan facade


调用该命令将自动执行句柄函数。

不,不能。这用于任务调度(CRON)。你唯一能做的就是调用schedulerI会建议你一种方法,你可以归档你的需求,创建一个控制器函数,并在处理函数中使用它们。因此,所有代码“$notify=new notify;$notify->PackageSMS($mobile,$msg);”都将是一个控制器的一部分,然后您可以使用同一个控制器函数和另一个控制器函数。这是一个很好的例子,说明了为什么不应该将任何业务逻辑直接放在控制器或命令中。业务逻辑应该放在服务中,然后您可以在任何需要的地方使用它。请说明您当前如何执行命令,即如果它是从cli执行的,您使用的命令是什么。Route::get('/foo',function(){$exitCode=Artisan::call('email:send',['user'=>1',--queue'=>default']);//}; #以编程方式执行命令