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

运行php artisan config:cache提示配置文件不可序列化如何解决

问题根因说明

这个报错是因为php artisan config:cache执行时,会通过var_export()序列化所有配置项后写入缓存文件,后续加载缓存时会调用导出类的__set_state()静态方法完成实例重建,你项目里的Modules\Language\Entities\LanguageConfig 实体类被写入了配置项,但没有定义该方法导致重建失败。

修复步骤
  • 第一步:先排查所有配置文件(config/目录下所有php文件、模块自定义配置文件),找到直接把LanguageConfig 类实例作为配置值返回的代码

    配置文件中只允许返回标量、数组、null这类可原生序列化的数据,不应该直接存放ORM实体、资源对象、闭包这类不可序列化的内容,优先调整这部分逻辑:比如把LanguageConfig实例化逻辑挪到业务代码里,配置里只存必要的参数

  • 第二步:如果确实需要在配置中保留该类实例,给Modules\Language\Entities\LanguageConfig类添加__set_state()静态方法,示例代码如下:
public static function __set_state($array)
{
    $obj = new self;
    foreach ($array as $property => $value) {
        $obj->$property = $value;
    }
    return $obj;
}
  • 第三步:清理旧缓存后重新生成配置缓存
    依次执行以下命令:
    php artisan config:clear
    php artisan cache:clear
    php artisan config:cache
    
验证

执行完上述命令后如果没有抛出异常即修复完成,可正常执行其他artisan命令。

内容的提问来源于stack exchange,提问作者tayeb320

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:09:02