Magento 2数据迁移编辑产品无法反序列化值

时间:2017-10-13 08:28:25

标签: magento2 data-migration

我将magento站点从1.7.0.2迁移到2.2干净安装。 迁移完成没有问题。

但是,如果我尝试编辑产品或添加新产品magento会显示错误

  

无法反序列化值。

有谁知道我在这里做错了什么?

客户,类别和自定义属性全部迁移无问题

2 个答案:

答案 0 :(得分:0)

问题出在<a href="{{route('index')}}">LOGO</a>

如果字符串被序列化(不是json而是php序列化),有一个函数/vendor/magento/framework/Serialize/Serializer/Json.php会给你一个语法错误。

将反序列化更改为:

unserialize($string)

添加函数以检查字符串是否已序列化:

public function unserialize($string)
{
    if($this->is_serialized($string)) {
        $string = $this->serialize($string);
    }
    $result = json_decode($string, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
         throw new \InvalidArgumentException('Unable to unserialize value.');
    }
    return $result;
}

执行此操作后,您可以解决问题。

答案 1 :(得分:0)

从1.9.2.0迁移到2.3.2时遇到了这个问题。 我在表additional_information中的sales_payment_transaction为空。错误发生在字符串编号73的方法句柄中的类Migration \ Handler \ SerializeToJson中:$ unserializeData = unserialize($ value); 我选择了该类,并将unserialize()函数更改为json_decode()。