Вызов функции-члена notify () для null в рабочих местах - PullRequest
0 голосов
/ 28 июня 2018

поэтому у меня есть эти переменные в 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);
        }

это дескриптор и строка 36, откуда происходит ошибка в JobForNasabahAkadItemToInvestor.php

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));
    }
}

1 Ответ

0 голосов
/ 28 июня 2018

В вашем __construct вы обращаетесь к свойствам неправильно.

$this->$userdata = $userdata;
$this->$submission = $submission;

Должно быть:

$this->userdata = $userdata;
$this->submission = $submission;

Обратите внимание на лишние $ знаки. Я думаю, что это является причиной проблемы.

...