Я пытаюсь переопределить исключение с помощью специального сообщения, которое отправлю в FE.
Код: Выделить всё
#[AsTaggedItem('api_platform.state.error_provider')]
final class ErrorProvider implements ProviderInterface
{
public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
{
die('enter');
$request = $context['request'];
$format = $request->getRequestFormat();
$exception = $request->attributes->get('exception');
/** @var HttpOperation $operation */
$status = $operation->getStatus() ?? 500;
// You don't have to use this, you can use a Response, an array or any object (preferably a resource that API Platform can handle).
if ($status >= 500) {
$error->setDetail('Something went wrong');
}
return $error;
}
}
Код: Выделить всё
api_platform.state.error_provider:
class: 'App\ApiPlatform\Error\Provider\ErrorProvider'
tags:
- key: 'api_platform.state.error_provider'
name: 'api_platform.state_provider'
api_platform.state_provider:
alias: api_platform.state.error_provider
Код: Выделить всё
#[ErrorResource]
class Error extends \Exception implements ProblemExceptionInterface
{
public function getType(): string
{
return 'teapot';
}
public function getTitle(): ?string
{
return null;
}
public function getStatus(): ?int
{
return 418;
}
public function getDetail(): ?string
{
return 'I am teapot';
}
public function getInstance(): ?string
{
return null;
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... -exception
Мобильная версия