0

config.yml:

fos_rest:
    param_fetcher_listener: true
    body_listener: true
    format_listener: 
        default_priorities: [json, xml]
    view:
        view_response_listener: 'force'  

sensio_framework_extra:
    view:    { annotations: false }
    router:  { annotations: true }

annotated controller:

/**
 * @Rest\View(statusCode=204)
 * @param \Symfony\Component\HttpFoundation\Request $request
 */
public function signUpAction(Request $request)
{
    return $this->get('%%%.response_generator')->generateResponse(array('test'), true, 'test'); 
    // returns a simple Object with some public properties
}

.jsonformat でルートにアクセスすると、次のように返されます。

{"status":1,"message":"test","data":["test"]}

ただし、ステータス コードをアノテーションのステータス コードに変更することはありません。

また、フォーマットが指定されていない場合、デフォルトの.jsonフォーマットにフォールバックせず、引き続きテンプレートを検索します。

4

1 に答える 1

2

これを試して:

use FOS\RestBundle\View\View; 

そして、アクションで:

$view = View::create($response, 204);
return $view;
于 2013-04-26T12:50:27.837 に答える