Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем Привет! Я в 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;
почта была подтверждена.
Спасибо за помошь.
Не в сети
можно закрыть я уже нашел ответ в другом месте!
Не в сети
Страницы 1