【发布时间】:2012-02-09 10:23:10
【问题描述】:
我的基本控制器具有以下功能:
protected $session;
public function before()
{
parent::before();
$this->session = Session::instance();
}
我扩展了这个控制器,当用户尝试登录时,如果没有填写用户名/密码,我会重定向用户:
if($this->request->method() == Request::POST)
{
$username = $this->request->post('username');
$password = $this->request->post('password');
if(strlen($username) == 0)
{
$this->session->set('error', 'Please enter a Username');
Request::current()->redirect('user/login');
}
if(strlen($password) == 0)
{
$this->session->set('error', 'Please enter a Password');
Request::current()->redirect('user/login');
}
}
$error = $this->session->get_once('error');
$view = View::factory('user/login');
$view->bind('title', $title);
$view->bind('error', $error);
echo $view->render();
但是 $error 参数在返回时始终为 NULL。这是因为会话正在通过 Base 控制器重置吗?我应该怎么做才能避免这种情况?
【问题讨论】: