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'. ログインは、remember me フラグが FALSE に設定されている場合に機能します。$token がオブジェクトでないのはなぜですか? 私が見逃したものはありますか?

4

1 に答える 1

0

create()メソッドをオーバーライドしてエラーを引き起こしたclass ORM_Base extends Kohana_ORMparent::create()、user_token を間違った create() に向けた。追加した create() を削除して修正しました。

于 2013-03-21T16:11:53.883 に答える