亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓 Symfony 序列化組在 php 中工作?

如何讓 Symfony 序列化組在 php 中工作?

PHP
胡子哥哥 2023-09-15 10:25:03
我正在使用Symfony 5.1 ( PHP7.2 ),問題是實體序列化組注釋不起作用。這是我處理實體并嘗試序列化其內容的方式:/** * Returns serialized list of articles * * @param Article[] $articles * @return string JSON string */public function serializeArticles(array $articles) : string{    $dateCallback = function ($innerObject, $outerObject, string $attributeName, string $format = null, array $context = []) {        return $innerObject instanceof \DateTime ? $innerObject->format(\DateTime::ISO8601) : '';    };    $defaultContext = [        AbstractNormalizer::GROUPS => ['user'],        AbstractNormalizer::CALLBACKS => [            'createdAt' => $dateCallback,            'updatedAt' => $dateCallback        ],        AbstractNormalizer::CIRCULAR_REFERENCE_HANDLER =>            function ($articles, $format, $context)  {                return $articles->getId();            },        AbstractNormalizer::IGNORED_ATTRIBUTES => [            '__initializer__', '__isInitialized__',            '__cloner__'        ]    ];       $JsonEncoder = new JsonEncoder();    $objectNormalizer =        new ObjectNormalizer(null, null, null,            null, null, null,            $defaultContext)    ;    $serializer = new Serializer(        [$objectNormalizer], [$JsonEncoder]    );    $articles = $serializer->serialize($articles, 'json');    return $articles;}無論如何,連載小組不想工作。草案看起來我沒有使用序列化組。
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

看來您沒有將AnnotationsReader對象傳遞給 ObjectNormalizer 的第一個參數。您應該更仔細地閱讀文檔。


use Doctrine\Common\Annotations\AnnotationReader;

use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;

use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;


$classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));

我認為這應該有幫助:)


查看完整回答
反對 回復 2023-09-15
  • 1 回答
  • 0 關注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號