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

Laravel 5.4升级至5.5后出现Array to string转换错误求助

Laravel 5.4 升级至5.5后登录触发Array to string conversion错误的解决方法

这个错误的核心原因是加密Cookie时,尝试将字符串前缀与数组类型的Cookie值拼接,导致数组转字符串的类型错误,触发E_NOTICE报错。以下是具体的排查和解决步骤:

  • 定位问题Cookie
    先确认哪个Cookie的值是数组。通常是登录后设置的自定义Cookie,或者Session相关Cookie。可以通过浏览器开发者工具查看当前页面的Cookie列表,检查每个Cookie的内容类型。

  • 排除不需要加密的Cookie
    如果该数组类型的Cookie不需要加密,直接在app/Http/Middleware/EncryptCookies.php的$except数组中添加对应的Cookie名称:

    protected $except = [
        // 替换为你的目标Cookie名称,比如'login_user_info'
        'login_user_info',
    ];
    
  • 将数组Cookie转为字符串存储
    如果Cookie必须加密,需要在设置Cookie时将数组转为字符串格式(比如JSON序列化):

    // 设置Cookie时处理数组
    $response->cookie('user_profile', json_encode($userProfileArray), 1440);
    // 读取Cookie时再解码
    $userProfile = json_decode(request()->cookie('user_profile'), true);
    
  • 检查Session配置
    若问题出在Session Cookie上,检查config/session.php中的配置:

    • 确保driver设置正确(比如file、database等)
    • 确认没有自定义将数组直接存入Session的逻辑,必要时同样对Session中的数组值做序列化处理
  • 清理缓存与旧Cookie
    最后执行以下命令清理Laravel缓存,并手动清除浏览器中的相关Cookie:

    php artisan cache:clear
    php artisan config:clear
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:05:26