Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.04.2019 14:23:05

отправка почты после подтверждния на Laravael 5.8

Всем Привет! Я в Laravel новичек. Попросил сделать сайт на Laravel, они деньги взяли а работу не до делали.
Теперь приходиться самому.

Это полный код.

<?php

namespace App\Http\Controllers;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\User;
use App\Guest;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\MailController;
use Cookie;
class GuestController extends Controller
{

    public function index($TP = false)
    {
        if ($TP === false) $TP = Cookie::get('TP') ?? false;
        if ($TP === false) return view('no_tp');
        Cookie::queue('TP', $TP, 60*24*365);
        $sponsor = User::where('user_id', $TP)->first();
        if ($sponsor === null) return view('no_tp');
        return view('guest-register', compact('sponsor'));
    }

    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);
        MailController::user_send($request['user_id'], $guest);
        return view('guest-success');
    }

    public function unsubscribe($token) {
        $guest = Guest::where('email_token', $token)->first();
        if ($guest === null) return;
        $guest->email_verified = null;
        $guest->save();

        return view('guest-unsubscribe');
    }

    public function verify(Request $request, $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'));


    }
}

на данный момент функция

MailController::user_send($request['user_id'], $guest);

отправляется сразу после регистрации.
как можно сделать так, что-бы она отправлялась после функции?

  public function verify(Request $request, $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'));


    }

В итоге только после того как

 $guest->email_verified = 1;

почта была подтверждена.
Спасибо за помошь.

Не в сети

#2 21.04.2019 10:30:45

Re: отправка почты после подтверждния на Laravael 5.8

можно закрыть я уже нашел ответ в другом месте!

Не в сети

Подвал раздела