Как я могу проверить, было ли электронное письмо подтверждено гостем перед отправкой второго электронного письма

#laravel #laravel-5.8 #laravel-authentication

#laravel #laravel-5.8 #laravel-аутентификация

Вопрос:

Я использую Laravel 5.8, и я хотел бы отправить два электронных письма после регистрации. Я хочу, чтобы первое электронное письмо отправлялось гостю непосредственно после регистрации, а второе — пользователю после того, как гость подтвердил свой адрес электронной почты. Ниже это можно увидеть ниже в функции проверки.

Метод сохранения

 public function save(Request $request)
{
    $validate = array(
        'name' => ['required', 'string', 'min:2', 'max:255'],
        'surname' => ['required', 'string', 'min:2', 'max:255'],
        'phone' => ['required', 'string', 'min:6', 'max:20'],
        'land' => ['required', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:guests'],
        'user_id' => ['required', 'string', 'exists:users,id']
    );
    $this->validate($request, $validate);
    $token = $request['user_id'].Str::random(22);
    $guest = new Guest;
    $guest->name = $request['name'];
    $guest->surname = $request['surname'];
    $guest->phone = $request['phone'];
    $guest->land = $request['land'];
    $guest->email = $request['email'];
    $guest->user_id = $request['user_id'];
    $guest->email_token = $token;
    $guest->save();

    MailController::send($request['email'], $request['name'], $token);
    //if (email_verified === 1)
    MailController::user_send($request['user_id'], $guest);

    return view('guest-success');
}
 

Метод проверки

 public function verify($token = false)
{
    if ($token == false) $token = Cookie::get('token') ?? false;
    else Cookie::queue('token', $token, 60 * 24 * 365);
    if ($token === false) return view('no_tp');
    $guest = Guest::where('email_token', $token)->first();
    if ($guest === null) return view('no_tp');
    $guest->email_verified = 1;
    $guest->email_verified_at = time();
    $guest->save();
    $user = User::find($guest->user_id);
    Cookie::queue('TP', $user->user_id, 60 * 24 * 365);

    return view('public-profile', compact('user'));
}
 

Комментарии:

1. Можете ли вы объяснить, в чем заключается ваш вопрос? Вы опубликовали код и сказали: «Это то, что я хочу сделать», но без объяснения того, что не работает, сообщений об ошибках, где именно вам нужна помощь и т. Д.

2. Переместите отправку электронного письма после проверки в verify() метод.

3. Извините, я, вероятно, что-то неправильно понял. Когда я устанавливаю электронное письмо после проверки в методе проверки, я получаю сообщение об ошибке, которое $request не определено. как я должен правильно это установить?

4. спасибо всем за помощь! Я нахожу ответ в другом месте! может быть закрыт.