我的班级中有一个protected $headers
变量,使用函数
public function actionLogIn()
{
$userCode = Input::get('username');
$password = Input::get('password');
$loginData = array(
'code' => $userCode,
'passkey' => $password
);
$loginData = json_encode($loginData);
$this->headers = Auth::login($loginData);//Modified login method
if(! is_null($this->headers))
{
return View::make('forms.welcome')->with('title', 'Welcome');
}else{
echo "Invalid access!";
}
}
当我使用print_r($this->headers);
时,它会成功打印出我需要的值,
但是当我尝试使用以下功能访问$this->headers
时:
public function actionLogOut()
{
if(is_null($this->headers)){
echo "is null", "\n";
}//for checking only
Auth::logout($this->headers);
}
$this->headers
为空。可能是什么问题呢 ? $headers
实际上也是一个数组。谢谢!
答案 0 :(得分:0)
为每个请求创建一个新的控制器实例。这意味着即使您将信息存储在$ this中,当用户请求新页面时它也不存在。
您要做的是将数据存储在请求之间不会更改的内容中 - 无论是在会话中还是在Cookie中。
在会话中,它看起来像这样:(警告 - 未经测试的代码)
public function actionLogIn() {
...
$loginData = json_encode($loginData);
$user = Auth::login($loginData);
if ($user) {
Session::put('logged_in_user',$user);
return View::make('forms.welcome')->with('title', 'Welcome');
}else{
echo "Invalid access!";
}
}
public function actionLogOut() {
if(Session::has('logged_in_user'){
$user = Session::get('logged_in_user');
Auth::logout($user);
Session::forget('logged_in_user');
} else {
echo "is null\n";
}
}
请查看http://four.laravel.com/docs/session,了解有关Laravel中会话的更多信息。