laravel中的redirecTo()方法无法正常工作

时间:2018-02-18 08:33:46

标签: php authentication laravel-5

我一直在尝试在登录后重定向用户,有两个链接应该在满足某个条件时重定向到。

protected function redirectTo(){

    $userRole = User::findOrFail(Auth::id());
    // dd($userRole->roles);
    if($userRole->roles == 'admin'){

        return 'admin/controlpanel';
    }

    elseif ($userRole->roles == 'participant') {

        return 'student/profile';
    }
}

我创建了此功能以重定向但它仍然重定向到'/ home'。然后我在这里和git上读到我还要修改中间件中的RedirectIfAuthenticated模型,我做了这个

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;
use App\User;


class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return self::redirectTo();
    }

    return $next($request);
}

protected function redirectTo(){

    $userRole = User::findOrFail(Auth::id());
    if($userRole->roles == 'admin'){

        return 'admin/controlpanel';
    }

    if ($userRole->roles == 'participant') {

        return 'student/profile';
    }
}
}

但在我之前的问题中仍然一直给我这个错误 here

我恢复了之前的git提交,然后逐步编码直到我发现它来自我修改过的中间件......

1 个答案:

答案 0 :(得分:1)

使用redirect这样的帮助:return redirect('admin/controlpanel');