我正在尝试使用以下命令登录用户:
$login = Auth::instance()->login($this->request->post('username'), $this->request->post('password'), TRUE);
然而,在尝试设置自动登录Cookie时失败,当它到达时为ErrorException [ Notice ]: Trying to get property of non-object
:
// Token data
$data = array(
'user_id' => $user->pk(),
'expires' => time() + $this->_config['lifetime'],
'user_agent' => sha1(Request::$user_agent),
);
// Create a new autologin token
$token = ORM::factory('User_Token')
->values($data)
->create();
// var_dump($token); // null
// Set the autologin cookie
Cookie::set('authautologin', $token->token, $this->_config['lifetime']);
如果我var_dump($token)
,则表明它是null
。我检查了数据库,似乎是正确添加的。我的配置有driver => 'ORM'
。如果remember me标志设置为FALSE,则登录有效。为什么$ token不是对象?有没有我错过的东西?
答案 0 :(得分:0)
我通过覆盖create()
中的class ORM_Base extends Kohana_ORM
方法导致错误,然后调用parent::create()
,但将user_token指向错误的create()。通过删除我添加的create()来修复。