所以我在NasabahEloquent.php中有此变量用于通知。
$shohibuls = ShohibulFinance::where('barang_id','=',$submission->id)->get();
通知:
foreach($shohibuls as $sohib){
User::find($sohib->shohibul_id)->notify(New NasabahAkadItemToInvestor($submission,$data));
}
通知运行正常。但是在将其放入发送电子邮件的作业中时,它会返回错误:
Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function notify() on null in /opt/lampp/htdocs/_pain/app/Jobs/JobForNasabahAkadItemToInvestor.php:36
这是NasabahEloquent.php上的工作分配
foreach($shohibuls as $sohib){
$userdata = User::where('id',$sohib->shohibul_id)->get();
$AkadEndJob = (new JobForNasabahAkadItemToInvestor($userdata,$submission))->delay(Carbon::now()->addSeconds(2));
dispatch($AkadEndJob);
}
这是错误来自JobForNasabahAkadItemToInvestor.php的句柄和第36行
public function handle()
{
$this->userdata->notify(New NasabahAkadItemToInvestorMail($this->submission));
}
为什么我的工作的用户变量中没有空值?
编辑:JobForNasabahAkadItemToInvestor.php文件
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Notifications\NasabahAkadItemToInvestorMail;
class JobForNasabahAkadItemToInvestor implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $userdata;
private $submission;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($userdata, $submission)
{
$this->$userdata = $userdata;
$this->$submission = $submission;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//nda tau lagi dah
//FIXME:Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function notify() on null in /opt/lampp/htdocs/_pain/app/Jobs/JobForNasabahAkadItemToInvestor.php:36
$this->userdata->notify(New NasabahAkadItemToInvestorMail($this->submission));
}
}
答案 0 :(得分:0)
在__construct
中,您以错误的方式访问属性。
$this->$userdata = $userdata;
$this->$submission = $submission;
应该是:
$this->userdata = $userdata;
$this->submission = $submission;
请注意多余的$
符号。我认为这就是导致问题的原因。