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»