我在laravel helper类中创建了函数来检查app/lib/Auth.php
class Auto extends \BaseController {
public static function logged() {
if(Auth::check()) {
return true;
} else {
$message = array('type'=>'error','message'=>'You must be logged in to view this page!');
return Redirect::to('login')->with('notification',$message);
}
}
}
在我的控制器中
class DashboardController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
Auto::logged();
return View::make('dashboard.index');
}
如果没有记录,我希望它重定向到登录路由,但是它会加载dashboard.index
视图,并显示消息“您必须登录才能查看此页面!”。
如何使用此消息重定向到登录路线?
答案 0 :(得分:1)
为什么要为此创建新的辅助函数。 Laravel已经为你处理了。见app/filters.php
。您将看到如下所示的身份验证过滤器
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('/')->with('message', 'Your error message here');
}
}
});
您可以确定用户是否已通过身份验证,如下所示
if (Auth::check())
{
// The user is logged in...
}
详细了解Laravel doc上的身份验证。
答案 1 :(得分:0)
这应该是有效的:
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
if(Auto::logged()) {
return View::make('dashboard.index');
}
}