I get the exception:
Unable to find template ""
The other similar questions didn't help; and weirdly enough it was working fine and then suddenly started giving me this exception.
composer:
"friendsofsymfony/rest-bundle": "0.13.*@dev",
"jms/serializer-bundle": "0.12.*@dev",
I'm following Automatic route generation: single RESTful controller (for simple resources)
config:
fos_rest:
format_listener: true
routing_loader:
default_format: json
view:
view_response_listener: 'force'
serializer:
serialize_null: true
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
routing:
sectors:
type: rest
prefix: /{v}
resource: JJ\MainBundle\Controller\SectorsController
controller:
/**
* @RouteResource("Sector")
*/
class SectorsController extends Controller
...
public function cgetAction()
{
return $this->getSectorIndustryRepo()->findAll();
}
I managed to resolve this issue by setting the listener explicitly to false:
fos_rest:
format_listener: false
EDIT
This also works:
fos_rest:
format_listener:
prefer_extension: false
default_priorities:
- json
For FOSRestBundle version 2.0 the config should be
fos_rest:
format_listener:
rules:
prefer_extension: false
fallback_format: json
Annotate your controller action with @View
to resolve this issue.
use FOS\RestBundle\View\View;
Have a look at the documentation chapter View Response listener.
If you don't want to annotate every action - you can set the @View annotation for a complete class using my pull request here.
Add this to your composer.json to use the PR.
"require": {
"friendsofsymfony/rest-bundle": "dev-dev-view-addition as 0.12.0",
// ...
"repositories": [
{
"type": "vcs",
"url": "https://github.com/nifr/FOSRestBundle"
},
(For reference) If One is testing with a rest client or manually be sure to set the header in your request:
Accept:application/json
Because fosRestBundle tries to determine the proper response type from the headers in the request.