Symfony 5.3 : Назначьте пользователя объекту с помощью JWT

#jwt #api-platform.com #symfony5 #lexikjwtauthbundle

Вопрос:

Я работаю с Api-платформой и попытался ввести своего пользователя, аутентифицированного в объекте, для запроса post.

Моя проблема в том, что при отправке моего пользователя в объект:

 obj-gt;setUser($this-gt;security-gt;getUser());  

Мне нужен пароль, и у меня ошибка:

 An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'password' ne peut être vide (null)  

Я аутентифицировал своего пользователя с помощью токена JWT и создал своего пользователя в createFromPayload() (JWTUserInterface)

 public static function createFromPayload($username, array $payload) {   $user = new User();   $user-gt;setId($username)-gt;setEmail($payload['username'] ?? '');  $user-gt;setRoles($payload['roles']);   return $user; }  

Я отлаживаю свой объект пользователя, и это логично, что мой пароль равен нулю, но как назначить моего пользователя в моем объекте, если пароль равен нулю?

 ^ AppEntityUser {#13193  -id: 8  -email: "test@test.fr"  -roles: array:1 [  0 =gt; "ROLE_USER"  ]  -password: null  -wallets: DoctrineCommonCollectionsArrayCollection {#13417  -elements: []  } }  

Мой класс : UserOwnedDenormalizer

 class UserOwnedDenormalizer implements ContextAwareDenormalizerInterface, DenormalizerAwareInterface {   use DenormalizerAwareTrait;    private const ALREADY_CALLED_DENORMALIZE = 'UserOwnedDenormalizer';   public function __construct(private UserRepository $userRepository, private Security $security)  {  }   public function supportsDenormalization($data, string $type, ?string $format = null, array $context = [])  {  $reflectionClass = new ReflectionClass($type);   $alreadyCalled = $context[self::ALREADY_CALLED_DENORMALIZE] ?? false;   return $reflectionClass-gt;implementsInterface(UserOwnedInterface::class) amp;amp; $alreadyCalled === false;  }   public function denormalize($data, string $type, ?string $format = null, array $context = [])  {  $context[self::ALREADY_CALLED_DENORMALIZE] = true;    /** @var UserOwnedInterface $obj */  $obj = $this-gt;denormalizer-gt;denormalize($data, $type, $format, $context);     $obj-gt;setUser($this-gt;security-gt;getUser());     return $obj;  } }  

Моя цель состоит в том, чтобы назначить пользователя в объекте, не проходя мимо Доктрины и моей базы данных.