Ich bin sicher, es ist ein kleiner Fehler, aber ich kann es nicht finden. Ich versuche, the official doc zu folgen und einen Ereignis-Listener für das Ereignis pre_serialize zu implementieren.JMS Serializer-Ereignis funktioniert nicht
Mein Service Erklärung:
<service id="app.question_serializer_subscriber" class="AppBundle\Serializer\QuestionSerializerSubscriber">
<tag name="jms_serializer.event_subscriber"/>
</service>
Mein Teilnehmer:
<?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');
}
}
Und mein Controller:
$question = $repo->findLastVersionByQuestionId((int) $questionId);
$serializer = SerializerBuilder::create()->build();
$context = new SerializationContext();
return new JsonResponse(json_decode(
$serializer->serialize(
$question,
'json',
$context
),
true
));
Wenn ich die Strecke Frage meiner Einheit Zugriff serialisiert und angezeigt, aber Warum wird die('in event');
nicht angezeigt?
Vielleicht hat es eine Beziehung mit der Tatsache, dass meine Aufgabe eine Lehre Entität (issue 666 oder PR 677)
großartig! Markieren Sie Ihre Antwort als akzeptiert, damit der Benutzer eine Lösung besser finden kann – Matteo