symfony API平台中的强制类型(int到string)

v09wglhw  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(99)

我尝试使用API平台将数据从React传递到PHP,但问题是我从数据库中获取的数据返回了一些整数值,API平台不会接受这些整数,而是期望字符串。
我的问题是,当我从API平台执行GET时,如何强制这些值以字符串的形式返回?
我应该用javascript String()修改它们吗?在我看来这不像是个好办法...
以下是我得到的错误信息:
ApiPlatform\Serializer\AbstractItemNormalizer::canAccessAttributePostDenormalize():参数#3($attribute)必须是字符串类型,int给定,在/var/www/vendor/api-platform/core/src/Serializer/AbstractItemNormalizer. php第365行调用

kiayqfof

kiayqfof1#

如果你想强制一些json值为字符串,你可以为下面的主题创建CustomNormalizer,它只支持这个类(甚至序列化组):
https://symfony.com/doc/current/serializer/custom_normalizer.html

public function normalize($topic, string $format = null, array $context = [])
    {
        $data = $this->normalizer->normalize($topic, $format, $context);

        // Here parse value to string
        $data['propertyName'] = (string) $data['propertyName'];

        return $data;
    }

    public function supportsNormalization($data, string $format = null, array $context = [])
    {
        return $data instanceof YourClass;
    }

字符串

相关问题