Доступ к курсу "Symfony. Создание API-платформы." закрыт

Автор: Vasiliy Bulykin 08/01/2023 03:01:35

модификация данных через правку сеттера — это красиво.
но есть вопрос.
как с помощью апи платформы можно сохранять пароль, который хешируется средствами, собствено, symfony?
ведь для хеширования необходимо иметь не только plainPassword, но и самого user.
то есть нам нужно изнутри entity user получить этого самого юзера, которого мы в этот момент добавляем.
пока единственное, что я придумал — создавать пользователя, а потом отдельно обновлять пароль своей собственной апишкой. но есть ощущение, что это работающий, но неправильный путь :)

Автор: Дмитрий Ченгаев 09/01/2023 12:01:18

Все верно. Здесь нужно применять другие инструменты.

В API Platform 3 появился State Processor
https://api-platform.com/docs/core/state-processors/

Можно в момент Patch или Post запроса захэшировать пароль.

Как альтернатива, можно также реализовать это через стандартные средства Symfony - Event Listeners
https://symfony.com/doc/current/event_dispatcher.html