首页 > 解决方案 > Laravel 5.8:反序列化():偏移量 0 的 3 个字节出错

问题描述

我在数据库中序列化了数据:

a:2:{i:0;s:1:"2";i:1;s:1:"5";}

在刀片中对其进行反序列化时,出现以下错误:

@php($course_ids = unserialize($payment->course_id))
unserialize(): Error at offset 0 of 3 bytes

我使用一个属性,但得到错误:

public function getCourseIDAttribute($value)
    {
        return isset($value) ? unserialize($value) : $value;
    }

casts

protected $casts = [
         'course_id' => 'array',
    ];

并在刀片中使用它:

@php($course_ids = $payment->course_id) 

我仍然有一个错误。

注意:使用时dd我可以得到数组!但如果没有dd我的刀片错误!

谢谢您的帮助。

标签: laravellaravel-5serialization

解决方案


在这里,您正在反序列化数据,

public function getCourseIDAttribute($value)
{
    return isset($value) ? unserialize($value) : $value;
}

所以你可以像刀片文件中的属性一样直接使用它没有用写

@php($course_ids = unserialize($payment->course_id))

在刀片文件中你可以这样写

@php($course_ids = $payment->course_id) 

希望能帮助到你


推荐阅读