只有字段填写
回答
CakePHP 1.3自动对password
字段进行散列。 CakePHP 2.0没有。
你有几个选项(从最差到最好,在我看来):
重命名你的领域和节能
if ($data['User']['new_password'] != '') { $data['User']['password'] = $this->Auth->password($data['User']['new_password']); }
哈希字符串中的平等检查之前将其交换
if ($data['User']['password'] == $this->Auth->password('')) { unset($data['User']['password']); }
更改散列函数来一个不凑空PAS剑[见book进行配置]:
function hashPasswords($data) { if (!empty($this->data['User']['password'])) { $this->data['User']['password'] = $this->Auth->password($this->data['User']['password']); } return $data; }
如果密码字段为空,则取消设置。
else {
if(empty($data['User']['password']))
{
unset($data['User']['password']);
}
if ($this->User->save($data)) {
$this->Session->setFlash('The user details have been updated.');
$this->redirect(array('action' => 'index'));
}
}
但是'$ this-> data ['User'] ['password']'是空值的散列,所以它永远不会是空的? – 472084
您可以从$data
function edit($id = null) {
$this->User->id = $id;
$data = $this->data;
if (empty($data)) {
$this->data = $this->User->read();
} else {
if($data['User']['password'] == ''){
unset($data['User']['password']);
}
if ($this->User->save($data)) {
$this->Session->setFlash('The user details have been updated.');
$this->redirect(array('action' => 'index'));
}
}
}
但是'$ this-> data ['User'] ['password']'是空白值的散列,所以它永远不等于''? – 472084
你可以尝试只更新特定字段unset
变量的基础上,中频情况:
if(empty($data['User']['password']))
{
$this->User->id = $user_i; // specify which User to update
//update only username
$this->User->save(array('User'=>array('User.username'=>$data['User']['username'])));
}
else{
//save as before
}
你可以用它处理它的行为为你: http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/
然后您将使用字段“pwd”并将确认设置为false(如果您不想要pwd_confirm字段)
- 1. 只有在填写其他字段时才需要填写字段
- 2. 如何验证字段,以便只填写一个字段?
- 3. 填写PDF字段
- 4. 未定义的变量只有当我没有填写必填字段
- 5. 只有文件字段,spambots填写表单吗?
- 6. MySQLi bind_param只适用于所有填写的字段
- 7. 启用按钮只能提交所有的字段填写
- 8. 只写只读字段
- 9. 填写计数字段
- 10. PDFNet填写签名字段
- 11. 实施“填写”字段
- 12. Selenium IDE不填写字段
- 13. 请填写表单字段
- 14. Word 2010填写字段
- 15. 用many2many字段填写many2one
- 16. 用户无需填写必填字段?
- 17. 未填写必填字段,执行php
- 18. 填写表格中填写所有必填字段后禁用删除
- 19. 只填写字段的PHP表单处理
- 20. codeigniter表单验证 - 只需要填写一个字段
- 21. 如何使字段只能填写管理员
- 22. jQuery验证 - 两个字段,只需填写一个
- 23. Restful APIs:只读/只写字段
- 24. 如何验证一个字段只有当另一个已经填写?
- 25. 如何创建所有需要的记录,以主要填写字段填写网页表单中的字段
- 26. 如何填写表格时,如何填写其全部字段
- 27. 有没有反正只注释JAXB的必填字段
- 28. CasperJS填写表单时字段没有名字
- 29. 只有在C#中填写了其他文本字段时才需要创建文本字段
- 30. 表单提交,即使所有的字段都没有填写
其中散列发生?它是由蛋糕完成的? – api55