为了账号安全,请及时绑定邮箱和手机立即绑定

导致错误“无法在写入上下文中使用方法返回值”的原因在这个 Codeigniter 3 应用程序中?

导致错误“无法在写入上下文中使用方法返回值”的原因在这个 Codeigniter 3 应用程序中?

PHP
互换的青春 2023-12-15 17:19:22
我正在使用 Codeigniter 3 开发社交网络应用程序,Ion-Auth。Github 存储库 和 Bootstrap 4。您可以在此处查看编辑用户的个人资料时,我检查编辑表单中是否有新的用户照片(头像)。如果是,我使用它,如果不是,我使用(保留)已存在于 users 表中的表(文件路径为 application/controllers/Auth.php):$new_file = $this->upload->data('file_name');$this->file_name = (isset($new_file) && !empty($new_file)) ? $new_file : $user->avatar;上面的代码工作正常。但是,我需要在会话中更新用户的照片,为此我在下面添加了$this->file_name = (isset($new_file) && !empty($new_file)) ? $new_file : $user->avatar:if (isset($new_file) && !empty($new_file)) {    $this->session->userdata('user_avatar') = $new_file;}上面的 if 语句会导致错误“无法在写入上下文中使用方法返回值”。我究竟做错了什么?
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您不需要同时使用两者。

if (isset($new_file) && !empty($new_file)) { 
   $this->session->userdata('user_avatar') = $new_file;
}

此处您应该使用 $this->session->set_userdata('user_avatar',$new_file)(根据用户指南)。

所以就变成了

if (!empty($new_file)) { 
   $this->session->set_userdata('user_avatar',$new_file);
}

您甚至不需要考虑使用 isset(),因为您在上面的代码中定义 $new_file,因此它始终会被“设置”。即 isset($new_file) 将永远为真。

但是如果 $new_file 为空,你打算做什么呢?这是你需要考虑的问题。


查看完整回答
反对 回复 2023-12-15
?
DIEA

TA贡献1820条经验 获得超2个赞

您通常会在调用执行写入的方法的 if 语句中遇到该错误。



查看完整回答
反对 回复 2023-12-15
  • 2 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信