【发布时间】:2021-09-20 03:44:39
【问题描述】:
对不起,如果这是一个菜鸟问题。
我以前直接通过控制器发送电子邮件,如下所示:
Mail::to($user)->send(new RegisterConfirmation($user));
如您所见,我还将 $user 传递到电子邮件中,在那里我可以使用该用户的信息,例如“Hello {{$user->username}}!”
但现在我想对电子邮件进行排队,所以在我的控制器中我现在有这个:
RegisterConfirmationJob::dispatch($user);
在我的工作中,我有以下几点:
public function __construct(User $user)
{
$this->user = $user;
}
public function handle()
{
$user = $this->user;
Mail::to($user)->send(new RegisterConfirmation($user));
}
当我运行它时,它返回以下错误:
[2021-07-09 20:33:57] local.ERROR:未定义的属性: App\Jobs\RegisterConfirmationJob::$user {"异常":"[对象] (ErrorException(代码:0):未定义的属性: App\Jobs\RegisterConfirmationJob::$user at /home/vagrant/projects/mainchan/app/Jobs/RegisterConfirmationJob.php:37) [堆栈跟踪]
为什么会这样?
编辑:
根据要求,这是我的整个 RegisterConfirmationJob 课程:
<?php
namespace App\Jobs;
use App\Mail\RegisterConfirmation;
use App\User;
use Illuminate\Support\Facades\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class RegisterConfirmationJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct(User $user)
{
$this->user = $user;
}
public function handle()
{
$user = $this->user;
Mail::to($user)->send(new RegisterConfirmation($user));
}
}
【问题讨论】:
-
您是否在
RegisterConfirmation类上定义了$user属性? -
你能发布整个
RegisterConfirmationJob类文件吗? -
@DaviMendesDev 好的,我编辑了帖子
标签: laravel