Alu*_*ard 2 cron dependency-injection laravel-5
我试图第一次使用调度程序来调用方法:
protected function schedule(Schedule $schedule)
{
$schedule->call('MyClassName@myMethodName')
->everyMinute();
}
Run Code Online (Sandbox Code Playgroud)
我正在调用的类是以App/Http/Controller
这种方式定义的:
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Models\Reaction;
use View;
use Request;
class MyClassNameController extends Controller {
Run Code Online (Sandbox Code Playgroud)
但是每次调度程序运行时,它都会:
[ReflectionException]
Class MyClassName does not exist
Run Code Online (Sandbox Code Playgroud)
我怎么能解决这个问题?
您不应该以这种方式调用控制器方法.控制器方法用于处理HTTP请求.
myMethodName
应将内容拉出到命令中.您可以在此处了解如何创建命令.
除此之外,你得到的原因ReflectionException
是因为异常说明的确切原因:MyClassName
不是有效的类.
$schedule->call('App\Http\Controllers\MyClassNameController@myMethodName')
Run Code Online (Sandbox Code Playgroud)
以上指定了您尝试引用的类的完全限定名称.您也可以在文件顶部导入该类并使用join
use App\Http\Controllers\MyClassNameController;
// ...
$schedule->call(join('@', [ MyClassNameController::class, 'myMethodName ]))
Run Code Online (Sandbox Code Playgroud)
但同样,你不应该这样调用控制器方法.