【问题标题】:Get serialization context groups in controller在控制器中获取序列化上下文组
【发布时间】:2020-01-15 10:48:21
【问题描述】:

我的问题是根据用户权限,使用的上下文组不同,找不到设置上下文组的地方。

对于调试问题,我正在寻找一种可能性,以找出 api 调用正在使用哪个序列化上下文组。这是我的代码:

<?php

namespace AppBundle\Controller\Api\Upload;


use AppBundle\Entity\Upload\UploadRepository;
use AppBundle\Entity\Upload\UploadType;
use AppBundle\Entity\Upload\UploadTypeRepository;

use Doctrine\ORM\ORMException;
use GuzzleHttp\Psr7\UploadedFile;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use ApiPlatform\Core\Annotation\ApiResource;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use AppBundle\General\Registry;
use Symfony\Component\Security\Core\Exception\BadCredentialsException;
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
use AppBundle\Entity\Upload\Upload;
use AppBundle\Entity\Application\ApplicationData;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\Serializer\Serializer;

/**
 * Class UploadController
 *
 * @package AppBundle\Controller\Api\Upload
 *
 * @ApiDoc()
 * @ApiResource(attributes={"pagination_enabled"=true})
 */
class UploadController extends Controller
     /**
     * Get an upload.
     *
     * @ApiDoc(
     *     resource=true,
     *     description="gets an upload",
     * )
     * @Route(
     *     name="getUploadSpecial",
     *     path="/fileuploads/{id}",
     *     defaults={"_api_resource_class"=Upload::class, "_api_item_operation_name"="getUpload"}
     * )
     * @Method("GET")
     *
     * @param Upload $data
     *
     * @return null|string
     *
     */
    public function getUploadAction($data)
    {
        // here I'd like to return the serialization context group
        return $data;
    }

是否有可能在控制器中获取序列化上下文组?

【问题讨论】:

    标签: symfony api-platform.com


    【解决方案1】:

    嗯,看来,控制器不是找到它的正确位置。 最好扔进去 src/Serializer/JsonEncoder.php 在函数编码中,就在返回之前,如下所示:

    /**
     * {@inheritdoc}
     */
    public function encode($data, $format, array $context = [])
    {
        dump($data, $context);die;
        return $this->jsonEncoder->encode($data, $format, $context);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 2015-09-14
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多