ApiPlatform генерирует неверный IRI (без идентификатора) при использовании поставщика состояний.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 ApiPlatform генерирует неверный IRI (без идентификатора) при использовании поставщика состояний.

Сообщение Anonymous »

У меня есть сущность «Пользователь» на платформе API, и я создал специальную операцию для возврата информации о вошедшем в систему пользователе с использованием поставщика состояний.
Тег ApiResource:
#[ApiResource(
operations: [
new Get(
uriTemplate: '/user',
normalizationContext: ['groups' => ['user:read']],
security: self::SECURITY_GET,
provider: UserStateProvider::class
)
]

UserStateProvider:
class UserStateProvider implements ProviderInterface
{
public function __construct(
private readonly Security $security,
) {}

public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
{
return $this->security->getUser();
}
}

Проблема: Эта конечная точка возвращает IRI без идентификатора, который выглядит следующим образом:
"@context": "/api/contexts/User",
"@id": "/api/user",
"@type": "User",

Я попытался получить пользователя из репозитория в UserStateProvider, но это не решило проблему:
$user = $this->security->getUser();
return $user ? $this->userRepository->find($user->getId()) : null;


Подробнее здесь: https://stackoverflow.com/questions/791 ... e-provider
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»