Laravel 7- 如何将数据(变量)从 CONTROLLER 传递到 JOB 再到 MAIL 再到 VIEW?

Laravel 7- How to pass data(variable) from CONTROLLER to JOB to MAIL to VIEW?

我看到这个问题问了好几次都没有人真正回答,或者他们的方法没有用。我将粘贴到目前为止的内容,但我仍然收到无法找到变量的错误。作业队列工作正常但无法在视图中找到变量。代码下方是我查看过的其他无效资源。

错误消息 - ErrorException:未定义的变量:/Users/JandB/Desktop/myProject/storage/framework/views/dab250ddee8692f8f6a1fa3334aad4ba0eb81350 中的新需求。php:1

控制器

public function store(StoreNeedRequest $request)
{
    $users = User::where('team_id', '=', auth()->user()->team_id)->get();

    $newNeed = 4;

    foreach ($users as $user) { 
        SendNeedsEmailJob::dispatch($newNeed, $user);

        }

}

工作

class SendNeedsEmailJob  implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $newNeed;
    protected $user;
    
 
    public function __construct($newNeed, $user)
    {
        $this->newNeed = $newNeed;
        $this->user = $user; 
    }

   
    public function handle()
    {
     
    Mail::to($this->user->email)
      ->send(new NeedsMail($this->newNeed));
        
            
    }
}

邮件

class NeedsMail extends Mailable
{
    use Queueable, SerializesModels;
    public $newNeed;
   
 
    public function __construct($newNeed)
    {
        $this->newNeed = $newNeed;
        
    } 

   
    public function build()
    {
     
        return $this->markdown('emails.needs')->with('newNeed', $this->newNeed)->subject('New NEED');
    }
}

查看

{{$newNeed}}

其他资源

https://laracasts.com/discuss/channels/laravel/laravel-job-not-passing-variable-to-end-view https://medium.com/@petehouston/passing-data-to-blade-template-from-queue-in-laravel-79130c598f01

确保您已删除所有以前的作业,并清除所有缓存,这样您就不会 运行 未定义 $newNeed 变量的旧版本 NeedsMail