2015-10-31 18 views
6

Sto aggiungendo un lavoro laravel alla mia coda dal mio controllo, come taleCome iniettare le dipendenze ad un lavoro laravel

$this->dispatchFromArray(
    'ExportCustomersSearchJob', 
    [ 
     'userId' => $id, 
     'clientId' => $clientId 
    ] 
); 

Vorrei iniettare il userRepository come una dipendenza in sede di attuazione della classe ExportCustomersSearchJob. Per favore, come posso farlo?

Ho questo, ma non funziona

class ExportCustomersSearchJob extends Job implements SelfHandling, ShouldQueue 
{ 
    use InteractsWithQueue, SerializesModels, DispatchesJobs; 

    private $userId; 

    private $clientId; 

    private $userRepository; 


    /** 
    * Create a new job instance. 
    * 
    * @return void 
    */ 
    public function __construct($userId, $clientId, $userRepository) 
    { 
     $this->userId = $userId; 
     $this->clientId = $clientId; 
     $this->userRepository = $userRepository; 
    } 
} 

risposta

7

Si inietta le dipendenze nel metodo handle:

class ExportCustomersSearchJob extends Job implements SelfHandling, ShouldQueue 
{ 
    use InteractsWithQueue, SerializesModels, DispatchesJobs; 

    private $userId; 

    private $clientId; 

    public function __construct($userId, $clientId) 
    { 
     $this->userId = $userId; 
     $this->clientId = $clientId; 
    } 

    public function handle(UserRepository $repository) 
    { 
     // use $repository here... 
    } 
} 
Problemi correlati