You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel控制器更新用户时报错Call to undefined function array_except()问询

错误原因

array_except是Laravel提供的数组辅助函数,该错误出现的核心原因如下:

  • Laravel从6.0版本开始将所有全局字符串、数组辅助函数从核心框架中剥离,移入独立的laravel/helpers扩展包,默认不再预装。如果当前项目运行的Laravel版本≥6.0且未安装该扩展,就会出现函数未定义的报错。
  • 其他项目相同代码可正常运行,要么对应项目的Laravel版本低于6.0,要么已经提前安装了laravel/helpers扩展包。
  • 小概率场景为已安装扩展,但未正确引入全局函数命名空间,导致程序优先在当前控制器的App\Http\Controllers命名空间下查找对应函数。
解决方法

以下三种方案均可解决问题,可根据实际需求选择:

  • 方案1:安装独立辅助函数扩展
    在项目根目录下执行Composer命令即可完成安装,无需修改原有业务代码:
    composer require laravel/helpers
  • 方案2:使用Arr门面替代全局函数
    无需安装额外扩展,首先在控制器顶部引入Arr类:
    use Illuminate\Support\Arr;
    再将原代码中的array_except($input,array('password'))替换为:
    Arr::except($input, ['password'])
  • 方案3:使用PHP原生方法实现同等逻辑
    直接改写else分支代码,用原生unset方法删除password字段,效果完全一致:
    else {
        unset($input['password']);
    }
    

内容的提问来源于stack exchange,提问作者Old Ceylon Mudliar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:09:00