FOSRestBundle:未触发ExceptionController

时间:2014-01-03 13:34:41

标签: symfony fosrestbundle

config.yml:

twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%
    exception_controller: 'FOS\RestBundle\Controller\ExceptionController::showAction'

fos_rest:
    routing_loader:
        default_format: json
    view:
        view_response_listener: force
        force_redirects:
            html: true
    format_listener:
        rules:
            - { path: '^/api', fallback_format: json }
            - { path: '^/', fallback_format: html }
    param_fetcher_listener: force
    body_listener: true
    exception:
        codes:
            'Symfony\Component\Routing\Exception\ResourceNotFoundException': 404
            'Symfony\Component\HttpKernel\Exception\NotFoundHttpException': 404
            'Doctrine\ORM\OptimisticLockException': HTTP_CONFLICT

但是返回了html:

...<h2><span>2/2</span> <abbr title="Symfony\Component\HttpKernel\Exception\NotFoundHttpException">NotFoundHttpException</abbr>: No route found for "GET /api/user/jFvms0rp%20"</h2>...

如何把它变成json?

1 个答案:

答案 0 :(得分:4)

我解决了同样的问题:

这是我的配置:

fos_rest:
    body_listener: true
    view:
        view_response_listener: force
    format_listener:
        rules:
            - { path: '^/', fallback_format: json }

希望它有用