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