我使用的是Laravel v5.2.39。如果您已登录,我只想重定向到仪表板。如果您手动更改URL,它会将您重定向到主屏幕。我正在使用auth中间件,但它不起作用。有什么帮助吗?
我的routes.php文件:
Route::get('/', function () {
return view('welcome');
})->name('home');
Route::get('dashboard', [
'uses' => 'UserController@getDashboard',
'as' => 'dashboard',
'middleware' => 'auth'
]);
我的UserController.php:
public function getDashboard(){
return view('dashboard');
}
和auth中间件:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->route('home');
}
}
return $next($request);
}
我不知道,问题是什么。我有一些登录和注册,但我不认为这是问题。如果有人想看到它,请写信给我。
祝你有个愉快的一天,谢谢你。
答案 0 :(得分:2)
如上所述,你试过这样的事吗?
Route::group(['middleware' => 'auth'], function () {
Route::get('dashboard', 'UserController@getDashboard')->name('dashboard');
});
或者您可以在类中的构造函数中添加中间件,如下所示:
public function __construct() {
$this->middleware('auth');
}
另请参阅the laravel documentation on using middleware with routes。
答案 1 :(得分:0)
尝试使用'中间件' => '身份验证:网络'代替'中间件' => ' AUTH'
答案 2 :(得分:0)
嘿,我不清楚你的问题,但这对你有帮助,
当你去项目路径localhost/project/
时,它将重定向到该URL中的localhost/project/home
URL你可以分配任何功能
Route::get('/', function () {
return redirect('home');
});