JMS Serializer在Mysql BLOB反序列化上返回资源ID #xxx

时间:2016-09-15 07:01:03

标签: php symfony doctrine-orm jms

我在Symfony 3项目上使用JMS序列化程序。 当我读取具有blob值的实体时,json返回:Resource id #xxx

默认情况下不支持blob类型吗?我该如何使用它?

2 个答案:

答案 0 :(得分:2)

我通过让getter始终为您解包资源并强制JMS Serialiser使用该getter而不是default - reflection来解决这个问题。

/**
 * @ORM\Column(type="blob")
 * @Serializer\Type("string")
 * @Serializer\AccessType("public_method")
 */
private $payload;

public function getPayload(): string
{
    if (\is_resource($this->payload)) {
        return stream_get_contents($this->payload);
    }

    return $this->payload;
}

public function setPayload(string $payload): void
{
    $this->payload = $payload;
}

答案 1 :(得分:0)

使用:<?= get_resource_type($data_example) ?> if return type = stream 你可以使用<?php stream_get_contents($data_example); ?>

祝你好运!