Laravel 5.8:unserialize():3个字节的偏移量0处出错

时间:2019-05-10 08:57:09

标签: laravel laravel-5 serialization

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

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',
    ];

并在Blade中使用它:

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

我仍然有一个错误。

注意:使用dd时,我可以得到数组!但没有dd时,刀片出现错误!

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这里您要反序列化数据,

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

因此您可以像刀片文件中的属性一样直接使用它而无需编写

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

在刀片文件中,您只能这样写

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

希望有帮助