laravel 重定向(如果已登录)

2022-08-30 19:30:15

我正在使用laravel 5.1.8。我正在制作一个登录/注册系统。我做了一个名为AdminController的控制器,并用中间件保护它。

但是我正在使用laravel的默认AuthController,其方法和类位于不同的位置。其中路由为:

Route::Controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController'
]);

get('admin', 'AdminController@index');
get('profile', 'AdminController@profile');
get('article', 'AdminController@article');

用户在未登录的情况下无法访问管理员控制器。其重定向到登录页面。但是我想要,如果登录用户在浏览器的地址栏上输入登录页面或注册的地址,该页面将重定向到AdminController。

当我尝试这样做时,它会查找“/home”并给出错误。我想让它成为“/管理员”。


答案 1

转到 然后从App\Http\Middleware\RedirectIfAuthenticated

public function handle($request, Closure $next)
{
    if ($this->auth->check()) {
        return redirect('/home');
    }

    return $next($request);
}

public function handle($request, Closure $next)
{
    if ($this->auth->check()) {
        return redirect('/admin');
    }

    return $next($request);
}

答案 2

将其添加到您的 :AuthController

protected $redirectTo = '/admin';

这告诉各种特征中的所有重定向方法重定向到那里而不是重定向到 。/home


推荐