2013-03-21 56 views
0

我試圖登錄的用戶有:的Kohana 3.3身份驗證模塊失敗,記得標誌和創建用戶令牌

$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不是一個對象?有什麼我錯過了嗎?

+0

什麼是$數據? – ITroubs 2013-03-21 15:24:51

+0

@ITroubs用'$ data'更新了這個問題 – xylar 2013-03-21 15:28:01

+0

通知是在什麼確切的路線? – ITroubs 2013-03-21 15:28:17

回答

0

我造成了錯誤,方法是覆蓋class ORM_Base extends Kohana_ORM中的create()方法,然後調用parent::create(),但將user_token指向錯誤的create()。通過刪除我添加的create()來修復。