您好我在laravel创建网站,但我面临一个问题。问题是当用户没有登录并且用户输入www.test.com/notifications时显示错误,如此
ErrorException (E_UNKNOWN)
Undefined variable: messages (View: /home/test/app/views/message-page.blade.php)
但是我希望当用户没有登录并输入www.test.com/notifications时,用户自动重定向到索引页面。请帮帮我,我很困惑。 我使用基本控制器中的一些代码如下:
public function checkLoggedIn(){
if(Auth::user()->check()){
return;
}
else {
return Redirect::to("/");
}
}
答案 0 :(得分:0)
你应该这样做:
public function checkLoggedIn(){
if (!Auth::check()) {
return Redirect::to("/");
}
return true;
}
但是我假设您想在另一个控制器中使用此功能,那么您应该这样做:
$result = $this->checkLoggedIn();
if ($result !== true) {
return $result;
}
进行重定向。
但是Laravel有过滤器,因此您可以轻松检查用户是否已登录。
您可以在routes.php
:
Route::group(
['before' => 'auth'],
function () {
// here you put all paths that requires user authentication
}
);
您可以在app/filters
中调整过滤器,例如:
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::to('/');
}
}
});