symfony detime normalizer Как десериализовывать дэйттайм и связанные сущности (объект по id)
Primary tabs
services: # default configuration for services in *this* file _defaults: autowire: true # Automatically injects dependencies in your services. autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. bind: Symfony\Component\Serializer\SerializerInterface $apiSerializer: '@api.serializer' #.......... Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer: ~ Symfony\Component\Serializer\Encoder\JsonEncoder: ~ app.entity_serializer: class: App\Normalizer\EntityNormalizer public: false autowire: true autoconfigure: true tags: - { name: serializer.normalizer } api.date_normalizer: class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer arguments: - { 'datetime_format': 'd/m/Y' } api.serializer: class: Symfony\Component\Serializer\Serializer arguments: - ['@api.date_normalizer', '@app.entity_serializer', '@Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer'] - ['@Symfony\Component\Serializer\Encoder\JsonEncoder']
где:
- источник идеи: https://stackoverflow.com/a/53898005
- см. дополнительную реализацию нестандартного App\Normalizer\EntityNormalizer
-- в примере выше мы сконфигурировали собственный сериализатор под именем $apiSerializer, чтобы получить его в контроллере, надо просто сделать инъекцию зависимостей с переменной этого же имени, например:
public function __construct(MyTargetClientService $MtApiClient, CampaignRepository $campaignRepository, ValidatorInterface $validator, PaginatorInterface $paginator, SerializerInterface $apiSerializer) { // .......... $this->serializer = $apiSerializer; }
- Log in to post comments
- 2025 reads
vedro-compota
Wed, 07/03/2019 - 19:35
Permalink
конфигурация в коде
также конвертирования (получения из id) объектов можно добиться с помощью конфигурирования сериаллайзера в коде, например в конструкторе вашего сервиса или контроллера:
_____________
матфак вгу и остальная классика =)