FOSRestBundle - использовать сообщение об ошибке из ограничения в обработчике исключений - PullRequest
0 голосов
/ 10 декабря 2018

Я борюсь с передачей сообщения из ограничения, используемого в QueryParam, например:

class MyController extends FOSRestController
{
    /**
     * @param ParamFetcherInterface $paramFetcher
     * @return Response
     *
     * @Rest\Get("/reports/my_raport")
     * @Rest\QueryParam(name="filter", strict=true, requirements=@App\Validator\API\Constraints\Filter)
     */
    public function referralFoundsAccountUsage(ParamFetcherInterface $paramFetcher): Response
    {

        return new Response();
    }
}

My fos_rest.yaml:

fos_rest:
  body_listener: true
  param_fetcher_listener:  true
  exception:
    enabled: true
    exception_controller: 'App\Controller\API\ExceptionController::showAction'
  format_listener:
    enabled: true
    rules:
    - { path: ^/api, prefer_extension: false, priorities: ['json'], fallback_format: json }

Я хочу передать сообщение об ошибке, возвращенноеограничение ExceptionController, поэтому я могу отформатировать его как JSON.

1 Ответ

0 голосов
/ 10 декабря 2018

Я нашел ответ:

class ExceptionController extends FOSRestController
{
    public function showAction(Request $request, \Throwable $exception, DebugLoggerInterface $logger = null): Response
    {
        return new JsonApiResponse($exception->getMessage(), 400);
    }
}
...