I would like to send Data to a NewsletterStore Job. But it’s failing with the following error. Any suggestions?
I also tried to remove the SerializesModels Models trait. Without any success.
Error
JavaScript
x
Exception
Serialization of 'Closure' is not allowed
Controller
JavaScript
public function store(StoreNewsletterRequest $request)
{
StoreNewsletterJob::dispatch($request);
return view('backend.dashboard.index');
}
Job
JavaScript
protected $request;
public function __construct($request)
{
$this->request = $request;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
if(!Newsletter::isSubscribed($this->request->email))
{
Newsletter::subscribe($this->request->email, [
config('newsletter.list_fields.firstname') => $this->request->firstname,
config('newsletter.list_fields.lastname') => $this->request->lastname
]);
}
}
Advertisement
Answer
Request
is not serializable there is a workaround what you are trying to achieve
JavaScript
public function store(StoreNewsletterRequest $request)
{
StoreNewsletterJob::dispatch($request->all());
return view('backend.dashboard.index');
}
Your job handler.
JavaScript
public function handle()
{
if(!Newsletter::isSubscribed($this->request['email']))
{
Newsletter::subscribe($this->request['email'], [
config('newsletter.list_fields.firstname') => $this->request->firstname,
config('newsletter.list_fields.lastname') => $this->request->lastname
]);
}
}
Hope this helps