我有我的用户控制器与我的edit.ctp视图。当我浏览/ users/edit/1时,我看到填充了*****的密码字段(在实体User.php中填充了哈希值,使用DefaultPasswordHasher)。我的UsersTable.php有需要的密码。CakePHP 3如何在不更改密码的情况下编辑用户(散列)
所以,我可以试试:
unset($user->password); // in edit() from UsersController.php
,并设置[要求=>假]在edit.ctp
当我保存,我得到
The user could not be saved. Please, try again.
因为在我UsersTable .php我有:
$validator
->requirePresence('password', 'create')
->notEmpty('password');
如果我试图从控制器留空白我得到错误,如果我尝试填充实际的密码,它再次哈希。
如何在不更改密码的情况下编辑任何用户?我可以从模型中设置此值,还是我需要将密码设置为不需要?
- 我不需要表现出真正的密码向管理员
- 我从控制器验证了password_confirm(已工作)
- 在add.ctp是没有问题的,因为默认值始终是空白
- 我想更改密码只有在密码字段填
- 我想密码必须需要的模式,因为所有用户都需要自己的密码,这就是为什么我试图保持它远没有在控制器验证
- 验证说“在创建”,但即使在更新是必要的,错误可能吗?
- 我的蛋糕的版本是提前3.4.4
感谢
谢谢!它的工作原理,我更新了patchEntity之前未设置,在我的调试(用户)只显示为“脏”password_confirm(我认为是奇怪的),但这一切都按计划运作,我已经_隐藏在实体'密码'和'令牌',我已经以形式密码的形式赋予了''的价值(令牌无关紧要)。祝你今天愉快 :) –