1

用户登录后,应重新进行身份验证,并且 Auth::check() 应返回 true。但在用户配置文件上,它返回 false。有什么问题或遗漏?

Route::post('login', function() {
            $userdata = array(
                'username' => Input::get('user'),
                'password' => Input::get('pw')
            );
            if (Auth::attempt($userdata, true)) {
                return Redirect::to('profile');
            } else {
                return Redirect::to('/')->with('login_errors', true);
            }
        });

Route::get('profile', function() {
            return (Auth::check() ? 'logged in' : 'not logged in') . '<br />' .
                    (Auth::user()==null ? 'null' : Auth::user()->name);
        });
4

1 回答 1

1
Route::get('profile', function() {
        return (Auth::check() ? 'logged in' : 'not logged in') . '<br />' .
                (Auth::user()==null ? 'null' : Auth::user()->name);
    });

我想你的问题就出在这上面。三元运算符的使用应该类似于 $action = (empty(var)) ?“默认”:空;

Route::get('profile', function() {
        return (Auth::check()) ? 'logged in' : 'not logged in') . '<br />' .
                (Auth::user()==null) ? 'null' : Auth::user()->name);
    });
于 2013-06-04T14:41:31.380 回答