在具有受保护变量的作业中找不到类


Class not found in job with protected variable

我试图创建一个作业,但是当我设置行:

protected $param;

从__construct传递数据到handle()我开始得到这个错误:

Class not found

当我删除受保护的$param;行,工作很完美。但我无法获得数据。我能做些什么来解决这个问题?

<?php
namespace App'Jobs;
use App'Jobs'Job;
use Illuminate'Queue'SerializesModels;
use Illuminate'Queue'InteractsWithQueue;
use Illuminate'Contracts'Queue'ShouldQueue;
use App'Repositories'ProductRepository;
class ImportProducts extends Job implements ShouldQueue
{
    use InteractsWithQueue, SerializesModels;
    protected $param;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($param)
    {
        $this->param = $param;
    }
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //$products = $this->param['products'];
        exit();
    }
}

这是整个错误信息:

Whoops, looks like something went wrong.
1/1
ReflectionException in Container.php line 734:
Class does not exist    
in Container.php line 734
    at ReflectionClass->__construct('') in Container.php line 734
    at Container->build('', array()) in Container.php line 629
    at Container->make('', array()) in Application.php line 697
    at Application->make('') in Job.php line 154
    at Job->resolve('') in Job.php line 210
    at Job->failed() in SyncQueue.php line 153
    at SyncQueue->handleFailedJob(object(SyncJob)) in SyncQueue.php line 36
    at SyncQueue->push(object(ImportProducts), '', 'upload_products_file') in Queue.php line 40
    at Queue->pushOn('upload_products_file', object(ImportProducts)) in Dispatcher.php line 135
    at Dispatcher->pushCommandToQueue(object(SyncQueue), object(ImportProducts)) in Dispatcher.php line 117
    at Dispatcher->dispatchToQueue(object(ImportProducts)) in Dispatcher.php line 66
    at Dispatcher->dispatch(object(ImportProducts)) in DispatchesJobs.php line 17
    at Controller->dispatch(object(ImportProducts)) in ProductController.php line 656
    at ProductController->importProducts(object(Request))
    at call_user_func_array(array(object(ProductController), 'importProducts'), array(object(Request))) in Controller.php line 80
    at Controller->callAction('importProducts', array(object(Request))) in ControllerDispatcher.php line 146
    at ControllerDispatcher->call(object(ProductController), object(Route), 'importProducts') in ControllerDispatcher.php line 94
    at ControllerDispatcher->Illuminate'Routing'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate'Routing'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96
    at ControllerDispatcher->callWithinStack(object(ProductController), object(Route), object(Request), 'importProducts') in ControllerDispatcher.php line 54
    at ControllerDispatcher->dispatch(object(Route), object(Request), 'App'Http'Controllers'ProductController', 'importProducts') in Route.php line 174
    at Route->runController(object(Request)) in Route.php line 140
    at Route->run(object(Request)) in Router.php line 724
    at Router->Illuminate'Routing'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate'Routing'{closure}(object(Request)) in VerifyCsrfToken.php line 64
    at VerifyCsrfToken->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate'Routing'{closure}(object(Request)) in ShareErrorsFromSession.php line 49
    at ShareErrorsFromSession->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate'Routing'{closure}(object(Request)) in StartSession.php line 64
    at StartSession->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate'Routing'{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
    at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate'Routing'{closure}(object(Request)) in EncryptCookies.php line 59
    at EncryptCookies->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate'Routing'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in Router.php line 726
    at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
    at Router->dispatchToRoute(object(Request)) in Router.php line 675
    at Router->dispatch(object(Request)) in Kernel.php line 246
    at Kernel->Illuminate'Foundation'Http'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate'Routing'{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
    at CheckForMaintenanceMode->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
    at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate'Routing'{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in Kernel.php line 132
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
    at Kernel->handle(object(Request)) in index.php line 54

当作业使用SerializesModels trait时,期望在构造函数中有一个Eloquent模型。

你在构造函数和Laravel中给出了一些不同于雄辩模型的东西,因为trait SerializesModels试图从$param类中重建雄辩对象,但它找不到它。

尝试将SerializesModels从工作特征中移除