爲什麼symfony忽略我的自定義標準程序?Symfony 3.3.8忽略自定義標準化程序
的src /的appbundle /串行器/正規化/ ExceptionNormalizer.php
<?php
namespace AppBundle\Serializer\Normalizer;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
/**
* Class ExceptionNormalizer
*/
class ExceptionNormalizer implements NormalizerInterface
{
/**
* {@inheritdoc}
*/
public function normalize($object, $format = null, array $context = array()): array
{
return [];
}
/**
* {@inheritdoc}
*/
public function supportsNormalization($data, $format = null): bool
{
return $data instanceof \Exception;
}
}
的src /的appbundle /資源/配置/ services.yml
services:
...
app.normalizer.exception:
class: AppBundle\Serializer\Normalizer\ExceptionNormalizer
tags:
- { name: serializer.normalizer }
應用程序/配置/配置.yml
imports:
- { resource: parameters.yml }
- { resource: security.yml }
#- { resource: services.yml } exclude default services file
- { resource: "@AppBundle/Resources/config/services.yml" }
異常輸出
{ 「錯誤」:{ 「代碼」:404, 「消息」: 「未找到」, 「異常」:[{ 「消息」:「的appbundle \實體\用戶對象不。發現 「」 階級 「:」 Symfony的\分量.....
預期的異常輸出
{}
歡迎來到堆棧溢出。請花一些時間閱讀發佈指南,否則您可能會收到反對票。 – catbadger
看起來它與規範化程序無關 - 沒有用戶實體它試圖與 –
@JasonRoman它的異常規範化程序,而不是用戶的規範化程序。我嘗試重新處理異常輸出,但是我得到的異常信息相同的字符串 – andrew357