Laravel Jobs不允许序列化“关闭”

Sta*_*ows 4 php jobs laravel

我想将数据发送到NewsletterStore作业。但是失败,并显示以下错误。有什么建议么?

我还尝试删除了SerializesModels模型特征。没有任何成功。

错误

Exception
Serialization of 'Closure' is not allowed
Run Code Online (Sandbox Code Playgroud)

控制者

 public function store(StoreNewsletterRequest $request)
    {
        StoreNewsletterJob::dispatch($request);

        return view('backend.dashboard.index');
    }
Run Code Online (Sandbox Code Playgroud)

工作

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

            ]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

Adn*_*taz 7

Request 无法序列化,有一种解决方法,您正在尝试实现

 public function store(StoreNewsletterRequest $request)
{
    StoreNewsletterJob::dispatch($request->all());

    return view('backend.dashboard.index');
}
Run Code Online (Sandbox Code Playgroud)

你的工作经理。

 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

        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • 对解决方法的实际含义和作用进行一些解释会很有用 (6认同)