可能重复:
Fatal error: Call to undefined method 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;
}
}
答案 0 :(得分:0)
我建议你将_doLogIn移动到组件中。这样您就不必将其公开,用户也无法通过浏览器直接访问它,并且所有控制器都可以使用它。
当前的_doLogIn可以被重写为使用新的组件方法,因此如果它被广泛使用,那么整个网站没有什么大不了的。
以防万一;)http://book.cakephp.org/2.0/en/controllers/components.html