gpt4 book ai didi

Cakephp 2.1 beforeSave 不起作用

转载 作者:行者123 更新时间:2023-12-02 10:27:04 26 4
gpt4 key购买 nike

我有一个用户模型、一个UsersController和一个使用用户模型的AccountController(帐户 Controller 在创建帐户、登录、注销时使用)。

一切正常,除了 AccountController 中的 beforeSave 函数。我尝试使用 beforeSave 来散列我的密码,但它不起作用(密码未散列地保存在数据库中)。

public function beforeSave() {
parent::beforeSave();

if (isset($this->request->data['User']['password'])) {
$this->request->data['User']['password'] = sha1($this->request->data['User']['password']);
}

return true;
}

一些注意事项:

  • 我使用“sha1”对密码进行哈希处理,因为我要将旧系统转换为 CakePHP(旧系统使用 sha1 对密码进行哈希处理)
  • 即使我返回 false; 保存函数仍然会执行(我认为不应该是这种情况
  • 调用 debug($this->request->data) 没有给我任何结果
  • 我在 UsersController 中添加了相同的 beforeSave 函数,但效果不佳

我认为在我的情况下 beforeSave 没有被调用,我只是不明白为什么。

<小时/>

已解决:beforeSave 函数必须进入模型内部,这是我现在的 beforeSave 函数:

public function beforeSave($options = array()) {
parent::beforeSave();
$this->data['User']['password'] = sha1($this->data['User']['password']);
return true;
}

最佳答案

保存前是 Model callback ,因此在您的模型中定义它。

关于Cakephp 2.1 beforeSave 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com