laravel перенаправление промежуточного программного обеспечения, когда новый пользователь вошел в систему - PullRequest
0 голосов
/ 11 марта 2020

Я хочу перенаправить на новую страницу, когда пользователь вошел в систему в первый раз. В противном случае пользователь идет по правильному пути. Проблема заключается в том, что когда я перенаправляю маршрут в sign_up, обрабатывается вызванный маршрут, и он снова отправляет меня на было сгенерировано то же самое промежуточное программное обеспечение, поэтому существует тип l oop. Пожалуйста, скажите мне, как с этим справиться.

namespace App\Http\Middleware;


use Closure;
use Illuminate\Http\Request;

class TutorMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next, $guard=null)
    {
        if (\Auth::guard($guard)->check() && \Auth::user()->type == '3'){
          //  if ($request->ajax() || $request->wantsJson()) {
           //     return response('Unauthorized.', 401);
          //     } 
            // else { return redirect()->guest('/home'); 
          if(\Auth::user()->first_time_login==false){
            // redirecting infinitely  
            // there must be a condition that check if i am not in the tutor.signup_process route
            return redirect()->route('tutor.signup_process');
          }      
        }
        else{
            return redirect()->guest('/login/join_as_a_tutor');
        }
        return $next($request);
    }
}

1 Ответ

0 голосов
/ 11 марта 2020

Я нашел решение, вот как:

public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->tutor = \Auth::user();

        if ($this->tutor->first_time_login == true && !\Request::is('tutor/signup_process')) {
            return redirect()->route('tutor.signup_process');
        }

        return $next($request);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...