Laravel 5 "Class does not exist" 使用调度程序时
Laravel 5 "Class does not exist" when using the scheduler
我第一次尝试使用调度程序来调用一个方法:
protected function schedule(Schedule $schedule)
{
$schedule->call('MyClassName@myMethodName')
->everyMinute();
}
我调用的 class 在 App/Http/Controller
中是这样定义的:
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Models\Reaction;
use View;
use Request;
class MyClassNameController extends Controller {
但是每次调度程序运行时,它都会给出:
[ReflectionException]
Class MyClassName does not exist
我该如何解决这个问题?
您不应该以这种方式调用控制器方法。控制器方法用于处理 HTTP 请求。
myMethodName
的内容应该拉出来成一条命令。你可以 learn about creating commands here.
除此之外,您得到 ReflectionException
的原因是异常状态的确切原因:MyClassName
不是有效的 class。
$schedule->call('App\Http\Controllers\MyClassNameController@myMethodName')
上面指定了您要引用的 class 的完全限定名称。您也可以在文件顶部导入 class 并使用 join
use App\Http\Controllers\MyClassNameController;
// ...
$schedule->call(join('@', [ MyClassNameController::class, 'myMethodName ]))
但同样,您不应该以这种方式调用控制器方法。
我第一次尝试使用调度程序来调用一个方法:
protected function schedule(Schedule $schedule)
{
$schedule->call('MyClassName@myMethodName')
->everyMinute();
}
我调用的 class 在 App/Http/Controller
中是这样定义的:
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Models\Reaction;
use View;
use Request;
class MyClassNameController extends Controller {
但是每次调度程序运行时,它都会给出:
[ReflectionException]
Class MyClassName does not exist
我该如何解决这个问题?
您不应该以这种方式调用控制器方法。控制器方法用于处理 HTTP 请求。
myMethodName
的内容应该拉出来成一条命令。你可以 learn about creating commands here.
除此之外,您得到 ReflectionException
的原因是异常状态的确切原因:MyClassName
不是有效的 class。
$schedule->call('App\Http\Controllers\MyClassNameController@myMethodName')
上面指定了您要引用的 class 的完全限定名称。您也可以在文件顶部导入 class 并使用 join
use App\Http\Controllers\MyClassNameController;
// ...
$schedule->call(join('@', [ MyClassNameController::class, 'myMethodName ]))
但同样,您不应该以这种方式调用控制器方法。