laravel重定向到用户登录时的路由

laravel重定向到用户登录时的路由

问题描述:

我是laravel的初学者,如果用户登录,我正试图重定向到另一个路由,注册和登录工作完美并且不是问题,但是当我尝试做laravel重定向到用户登录时的路由

@if(Auth::check()) 
    {{ 
     redirect()->route('news') 
    }} 
@endif 

重定向脚本获取屏幕这样的输出:

HTTP/1.0 302 Found Cache-Control: no-cache, private Location: http://localhost/red-sec/public/news <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta http-equiv="refresh" content="1;url=http://localhost/red-sec/public/news" /> <title>Redirecting to http://localhost/red-sec/public/news</title> </head> <body> Redirecting to <a href="http://localhost/red-sec/public/news">http://localhost/red-sec/public/news</a>. </body> </html> 

请原谅我,如果我做了新手的错误,我感到非常新laravel,和新闻路由设置正确并正在工作

编辑1: 第一个评论,是的,这里是我的web.php文件:

<?php 

/* 
|-------------------------------------------------------------------------- 
| Web Routes 
|-------------------------------------------------------------------------- 
| 
| Here is where you can register web routes for your application. These 
| routes are loaded by the RouteServiceProvider within a group which 
| contains the "web" middleware group. Now create something great! 
| 
*/ 

Route::get('/', function() { 
    return view('welcome'); 
})->name('home'); 

Route::post('/signup', [ 
    'uses' => '[email protected]', 
    'as' => 'signup' 
]); 

Route::post('/signin', [ 
    'uses' => '[email protected]', 
    'as' => 'signin' 
]); 

Route::get('/news', [ 
    'uses' => '[email protected]News', 
    'as' => 'news', 
    'middleware' => 'auth' 
]); 
+0

实际上是一个名为新闻的路线?即在你的路线文件中,你是否有类似Route :: get('/ news') - > name('news')'? – dargue3

+0

我编辑的问题,请检查web.php文件是它它 –

+0

它似乎正在生成重定向脚本,但它是在屏幕上打印出来 –

你不应该试图(也不能)在视图中重定向。视图只能用于显示数据,而不能用于业务逻辑。

因为你不使用控制器做任何逻辑(你直接从路由器返回视图),你可以做这样的事情:在您的视图中显示

Route::get('/', function() { 
    if(Auth::check()) { 
     return redirect()->route('news'); 
    } 

    return view('welcome'); 
})->name('home'); 

文本实际上是一个HTTP响应。

+0

哦,所以在web.php文件中的图像?但我不希望它总是重定向到新闻,如果用户登录,只在欢迎页面 –

+0

最简单的方法是将此检查添加到家庭控制器。 – Laran

+0

好吧,所以我需要创建一个家庭控制器?但我没有家庭模式。我需要一个家庭模型吗? –

所以我假设你想看看他们是否已经登录,如果他们是你想重定向他们远离登录页面?您可以在UserControllerRoute::get('/signin')方法中完成该操作。之前,它返回登入查看你可以做Auth::check(),如果这是真的,那么做redirect()->route('news')

你必须留意的是,Laravel附带一吨已经到位认证脚手架,which you can read about here.

在您web.php,有这样的走/路线的地方:

Route::get('/', function() { 
    if (Auth::check()) { 
    return redirect()->route('news'); 
    } 
    else { 
    return view('welcome'); 
    } 
} 
+0

我看到了,但登录页面也是主页面。如果用户登录 –

+0

,我想从主页面重定向到新闻,所以你所说的是'welcome.blade.php'中有一个登录表单,如果用户已经登录,你宁愿将它们重定向到'/ news',在那里你可以返回'news.blade.php'视图? – dargue3

+0

这就是它 –