php – 更新用户时,Laravel空密码被哈希处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 更新用户时,Laravel空密码被哈希处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1070字,纯文字阅读大概需要2分钟。
内容图文
![php – 更新用户时,Laravel空密码被哈希处理](/upload/InfoBanner/zyjiaocheng/733/d0787563704044b2b275b6317ee90494.jpg)
当我用.更新我的模型绑定表单时
$user->update(Input::all())
我的密码字段被重新散列,即使它是空的.我已将我的User.php类设置为自动散列该字段,但是由于该字段为空,不应该跳过它?
解决方法:
你可以在这种情况下使用:
Input::except('password')
所以在你的控制器中你可以这样做:
if (trim(Input::get('password')) == '') {
$data = Input::except('password');
}
else {
$data = Input::all();
}
$user->update($data);
但是,您应该考虑其他可能的问题.在这种情况下,如果用户发送带有ID名称的输入(即使您的表单中没有此类字段,任何人都可以执行此操作),他可以轻松更改其他用户的密码/帐户并销毁您的整个数据.
您应该至少在您的用户模型中使用:
protected $guarded = array('id');
保护用户ID在mass assignment期间不被更改,但也许还有其他一些你想保护的字段(你应该在$guarded数组中列出它们.
对我来说,在这种情况下更好的选择是使用标准用户更新:
$user = User::find($id);
if (trim(Input::get('password')) != '') {
$user->password = Hash::make(trim(Input::get('password')));
}
$user->name = Input::get('name');
// and so on - this way you know what you are changing and you won't change something you don't want to change
$user->save();
内容总结
以上是互联网集市为您收集整理的php – 更新用户时,Laravel空密码被哈希处理全部内容,希望文章能够帮你解决php – 更新用户时,Laravel空密码被哈希处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。