2012-09-05 27 views
1

我正在使用記住我的組件。實際上,將CakePHP 1.3應用程序遷移到CakePHP 2x。我被這個最後一塊代碼記住了RememberMeComponent。什麼是cakePHP2x中的AuthComponent :: getModel()替代方法?

,我在這裏看到的設置cookie的腳本是:

function make() { 
    $data = array(
     $this->ident_field => $this->_create_token(), 
     $this->token_field => $this->_create_token(), 
    ); 

    $this->Cookie->name = $this->cookie_name; 
    $this->Cookie->time = $this->period; 
    $this->Cookie->key = base64url_encode(implode('::', $data)); 
    $this->Cookie->secure = true; 

    $this->Auth->getModel()->save(array($this->Auth->userModel => array_merge(array('id' => $this->Auth->user('id')), $data)), false); 

} 

,並檢查有:

function check() { 
    $cookie = $this->Cookie->read($this->cookie_name); 

    if (empty($cookie)) { 
     return false; 
    } 

    $data = explode('::', base64url_decode($cookie)); 

    $user = $this->Auth->getModel()->find('first', array(
     'conditions' => array(
      $this->Auth->userModel.'.ident' => $data[0], 
     ), 
    )); 

    if (! $user) { 
     return false; 
    } 

功能base64url_encode在引導定義 - 因此,它是有效的功能。

現在有一行:

​​

這是給我的錯誤:

Error: Call to undefined method AuthComponent::getModel() 
File: /var/www/FlintStones/Controller/Component/RememberMeComponent.php 

我檢查Auth Component文檔,但是,它沒有任何選擇在那裏我能找到的身份驗證模式。

在此先感謝。 PS:我們不能直接移動到自動登錄(如您可能已經想到的那樣),或者如果您也可以參考快速分步步驟,請分享。我甚至可能會考慮這個,但到目前爲止,只是獲得Auth模型。

回答

0

我在同一個組件中有同樣的問題。

How to get $settings data out of CakePHP 2.0 FormAuthenticate object

摘要:

使用$this->Auth->userModel得到的模型。如果值爲null,它將默認爲'User'

+0

是的,我最近也在想它......順便說一句......當我們遇到它時,我們都在一個項目(VF)上工作......希望你能記住我...... :) – Karma

+0

我記得你。 – Benjam

+0

您的網站的聯繫表格是否有效? – Karma

相關問題