在可邮寄和拉拉维尔队列中出现问题



我无法将表单数据从 Laravel 中的控制器传递到作业

下面是我的控制器

public function sendmail_action(Request $request){
try{
$data=$request->all();
$this->dispatch(new LeadSendmailJob($data));
return response()->json(['status'=>'true']);
}catch (Exception $e){
return response()->json(['status'=>'false','msg'=>$e->getMessage()]);
}
}

以下是工作

<?php
namespace AppJobs;
use AppMailLeadMail;
use IlluminateBusQueueable;
use IlluminateHttpRequest;
use IlluminateQueueSerializesModels;
use IlluminateQueueInteractsWithQueue;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateSupportFacadesMail;
class LeadSendmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public $data;
public function __construct(array $data)
{
$this->data=$data;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Mail::to('sdf@gmail.com')->send(new LeadMail($this->data));
}
}

下面是邮件

<?php
namespace AppMail;
use IlluminateBusQueueable;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
use IlluminateContractsQueueShouldQueue;
class LeadMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public $data;
public function __construct(array $data)
{
$this->data=$data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('frontend.emails.lead-mail')
->from('info@nextaussietech.com')
->with(['message'=>$this->data->message]);
}
}

在失败的作业表中,我收到此异常

错误异常:尝试在 C:\xampp\htdocs\CRM\app\Mail\LeadMail.php:34 中获取非对象的属性"消息">

它在使用模型数据时有效,但在我传递表单数据时不起作用

$data

不是一个对象,它是一个数组;Request::all()返回一个数组。您不能访问具有与对象相同的表示法的数组。

$this->data['message']; // access element of the array

最新更新