У меня есть событие, которое отправляет приветственное письмо, когда кто-то регистрирует новую учетную запись на моем сайте.
Моя проблема в том, что мне нужно было создать страницу "Создать пользователя" в моем разделе администратора. Теперь каждый раз, когда я создаю пользователя из раздела администратора, электронная почта по-прежнему отправляет электронное письмо, приветствующее нового пользователя.
Это было бы хорошо, но мне нужно это письмо, чтобы сказать что-то еще.
Я не хочу, чтобы приветственное письмо срабатывало при создании пользователя из панели администратора.
Как я могу контролировать это событие, отправив электронное письмо?
Код в значительной степени идет в следующем порядке:
1. Код события: NewUser.php
namespace App\Events;
... irrelevant classes
use Illuminate\Foundation\Events\Dispatchable;
use App\User;
class NewUser
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
}
2. Прослушиватель: SendWelcomeEmail.php
namespace App\Listeners;
use App\Events\NewUser;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Mail;
use App\Mail\NewUserWelcome;
class SendWelcomeEmail
{
public function __construct()
{
//
}
public function handle(NewUser $event)
{
Mail::to($event->user->email)->send(new NewUserWelcome($event->user));
}
}
3. Почта: NewUserWelcome.php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\User;
class NewUserWelcome extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function build()
{
return $this->subject('Welcome To The Website')->markdown('emails.user.newuserwelcome');
}
}
4. Адрес электронной почты уценки будет следующим.
@component('mail::message')
# Greetings bla bla bla
5. EventServiceProvider: делает вызов следующим образом:
protected $listen = [
'App\Events\NewUser' => [
'App\Listeners\SendWelcomeEmail',
],
];
6. Модель пользователя У меня есть следующий соответствующий код:
class User extends Authenticatable {
use Notifiable;
protected $dispatchesEvents = [
'created' => Events\NewUser::class
];
В моем ADMIN SAVE USER FUNCTION | UserController Это то, что я использую, чтобы сохранить нового пользователя из панели администратора : (Нет классов событий)
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
public function adminUserStore(Request $request){
$newsupporter = User::create([
'name'=> $request->name,
'email' => $request->email,
'password' => Hash::make($quickpass),
]);
return back()->with('success','The user has been created and a password reset email has been sent to them.');
}
Буду признателен за любую помощь, я уже давно борюсь с ней.