Laravel Auth自定义路由重定向到/(自定义路径)/ login的/ login insted

时间:2017-01-07 20:58:28

标签: redirect laravel-5.3

我正在使用Laravel 5.3.29。我想为身份验证创建自定义路由。

这是我的网络路线代码。

Route::group(['prefix' => 'hrs'], function(){ Auth::routes(); });
Route::get('/', function () { return view('welcome'); });
Route::get('/home', 'HomeController@index');

我将url更改为/ home到/ hrs / home和其他所有资源代码。

这是我的HomeController代码:

public function __construct()
{ $this->middleware('auth'); }
public function index()
{ return view('home'); }

当我没有登录时遇到localhost / home时会出现问题。它将我重定向到localhost / login而不是localhost / hrs / login。 redirect error pic

我必须在哪里更改才能将我重定向到localhost / hrs / login。

2 个答案:

答案 0 :(得分:2)

除了一件事,你做得很好。您尚未将Handler.php文件更改为app\Exceptions\目录。只需将Handler.php文件更改为unauthenticated()方法,如下所示:

  

返回redirect() - > guest('hrs / login');

完整代码:

protected function unauthenticated($request, AuthenticationException $exception)
{
    if ($request->expectsJson()) {
        return response()->json(['error' => 'Unauthenticated.'], 401);
    }

    return redirect()->guest('hrs/login');
}

答案 1 :(得分:0)

这帮助了我。在自定义控制器中,应使用方法受保护的函数redirectTo()

,而不是受保护的 $ redirectTo 属性。

这是我的代码。代替

protected $redirectTo = 'home';

我使用:

protected function redirectTo(){

    return route('home');

}

This tutorial帮助我解决了这个问题。