Да! Возможно. И для этого вам придется переписать sendEmailVerificationNotification
в вашем App\User
. Этот метод предоставляется трейтом Illuminate\Auth\MustVerfiyEmail
. Метод sendEmailVerificationNotification
уведомляет созданный user
, отправляя электронное письмо, как определено в классе Illuminate\Auth\Notifications\VerifyEmail
Notification.
// This is the code defined in the sendEmailVerificationNotification
public function sendEmailVerificationNotification()
{
$this->notify(new Notifications\VerifyEmail);
}
Вы можете изменить этот метод, чтобы не уведомлять пользователя напрямую. Вам нужно будет определить Job
, который вы будете отправлять в методе sendEmailVerificationNotification
вместо уведомления созданного пользователя.
В классе Job
вы создадите метод handle
, с помощью которого вы можете отправить электронное письмо на user
, но вы должны предоставить $user
заданию, которое можно выполнить, передав его в качестве параметра методу dispatch
следующим образом:
public function sendEmailVerificationNotification()
{
VerifyEmail::dispatch($this);
}
$this
представляет собой созданное user
, а задание App\Jobs\VerififyEmail
(которое вы создадите) получит все параметры, переданные dispatch
в его __construct
Код VerifyEmail
будет выглядеть так:
namespace App\Jobs;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Auth\Notifications\VerifyEmail;
class VerifyEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function handle()
{
// Here the email verification will be sent to the user
$this->user->notify(new VerifyEmail);
}
}
person
Yves Kipondo
schedule
04.10.2018