0

重複の可能性:
致命的なエラー: 未定義のメソッド CookieComponent::del() の呼び出し

SiteUsers コントローラからのログイン メソッドを使用するプラグインを作成していますが、次のエラー メッセージが表示されます。

未定義のメソッド SiteUsersController::_doLogIn() の呼び出し

プラグイン サイト ユーザー コントローラー:

class SiteUsersController extends AppController {

public $name = 'SiteUsers';


/**
 * login_competition
 *
 */
public function login_challenge() {

    $this->autoRender = false;

    if (!$this->_doLogIn($this->request->data['SiteUser'])) {

            $this->Session->setFlash('ERROR');

        }

    }

    $this->redirect('/');
}

}

メイン アプリのサイト ユーザー コントローラー

class SiteUsersController extends AppController {

public $name = 'SiteUsers';

/**
 * _doLogIn()
 *
 * @param unknown_type $data
 * @return string|string
 */
protected function _doLogIn($data) {

    $this->_user = $this->SiteUser->getUserByEmailPassword(Sanitize::clean($data));

    if (!empty($this->_user)) {

        $this->Session->Write('SiteUser.id', $this->_user['SiteUser']['id']);
        $this->Session->Write('SiteUser.first_name', $this->_user['SiteUser']['first_name']);
        $this->Session->Write('SiteUser.username', $this->_user['SiteUser']['username']);

        return true;
    }

    return false;

}


}
4

1 に答える 1

0

_doLogIn をコンポーネントに移動することをお勧めします。そうすれば、公開する必要がなくなり、ユーザーがブラウザーから直接アクセスすることがなくなり、すべてのコントローラーで利用できるようになります。

現在の _doLogIn は、新しいコンポーネント メソッドを使用するように書き直すことができるため、サイト全体で広く使用されていれば問題はありません。

念のため;) http://book.cakephp.org/2.0/en/controllers/components.html

于 2013-01-02T12:22:12.657 に答える