0

我正在尝试使用以下方式登录用户:

$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'. 如果记住我标志设置为 FALSE,则登录工作。为什么 $token 不是对象?有什么我错过的吗?

4

1 回答 1

0

我通过覆盖然后调用的create()方法导致错误,但将 user_token 定向到错误的 create()。通过删除我添加的 create() 来修复。class ORM_Base extends Kohana_ORMparent::create()

于 2013-03-21T16:11:53.883 回答