我相信這是一個小錯誤,但我找不到它。 我正在嘗試關注the official doc並在pre_serialize事件上實現事件偵聽器。JMS串行器事件不起作用
我的服務宣言:
<service id="app.question_serializer_subscriber" class="AppBundle\Serializer\QuestionSerializerSubscriber">
<tag name="jms_serializer.event_subscriber"/>
</service>
我的用戶:
<?php
namespace AppBundle\Serializer;
use JMS\Serializer\EventDispatcher\EventSubscriberInterface;
use JMS\Serializer\EventDispatcher\ObjectEvent;
class QuestionSerializerSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return array(
array(
'event' => 'serializer.pre_serialize',
'method' => 'onPreSerialize',
)
);
}
public function onPreSerialize(ObjectEvent $event)
{
die('in event');
}
}
而且我的控制器:
$question = $repo->findLastVersionByQuestionId((int) $questionId);
$serializer = SerializerBuilder::create()->build();
$context = new SerializationContext();
return new JsonResponse(json_decode(
$serializer->serialize(
$question,
'json',
$context
),
true
));
當我訪問路線我的實體問題是序列化並顯示,但爲什麼die('in event');
不顯示?
也許這是與事實,我的對象是一個學說實體(issue 666或PR 677)
太棒了!將您的答案標記爲已接受,以便用戶更好地找到解決方案 – Matteo