2013-08-02 13 views
10

ottengo l'eccezione:FOS fascio resto: incapaci di trovare il modello

Impossibile trovare il modello ""

Le altre domande simili non hanno aiutato; e stranamente funzionava bene e poi improvvisamente ha iniziato a darmi questa eccezione.

compositore:

"friendsofsymfony/rest-bundle": "0.13.*@dev", 
    "jms/serializer-bundle": "0.12.*@dev", 

Sto seguendo 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 } 

di routing:

sectors: 
    type: rest 
    prefix: /{v} 
    resource: JJ\MainBundle\Controller\SectorsController 

regolatore:

/** 
* @RouteResource("Sector") 
*/ 
class SectorsController extends Controller 
... 
    public function cgetAction() 
    { 
     return $this->getSectorIndustryRepo()->findAll(); 
    } 
+0

leggi la mia risposta qui: http://stackoverflow.com/a/32779936/828366 –

risposta

10

sono riuscito a risolvere il problema impostando l'ascoltatore in modo esplicito su false:

fos_rest: 
    format_listener: false 

EDIT

Questo funziona anche:

fos_rest: 
    format_listener: 
     prefer_extension: false 
     default_priorities: 
      - json 
+0

Non penso che sia la soluzione giusta. Hai appena disattivato l'intera funzione Negoziazione del contenuto. –

+0

@WilliamDURAND la modifica ti colpisce? – Tjorriemorrie

+1

Non è quello che ti ho detto qui: https://github.com/FriendsOfSymfony/FOSRestBundle/issues/518#issuecomment-22162359. Ma sì, è una questione di configurazione. Questo è, o si usa l'estensione come modo preferito per impostare il 'format' che è male ma ... in ogni caso, basta girare il parametro' prefer_extension' a 'true', oppure si usa l'header' Accept' e si ha per configurare le priorità (funzione di negoziazione del contenuto). –

3

Annota la tua azione di controllo con @View per risolvere questo problema.

use FOS\RestBundle\View\View; 

Dai un'occhiata alla documentazione chapter View Response listener.


Se non si desidera annotare ogni azione - è possibile impostare l'annotazione @View per una classe completo utilizzando my pull request here.

Aggiungi questo al tuo compositore.json per utilizzare il PR.

"require": { 
    "friendsofsymfony/rest-bundle": "dev-dev-view-addition as 0.12.0", 

// ... 

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/nifr/FOSRestBundle" 
    }, 
+0

Impossibile trovare template "MainBundle: Settori: cget.html. ramoscello". Sto già usando il pacchetto extra; config updated – Tjorriemorrie

+0

Penso che il router non rileva che il formato è JSON – Tjorriemorrie

1

(per riferimento) Se uno sta testando con un cliente di riposo o manualmente essere sicuro per impostare l'intestazione nella richiesta: Accettare: application/json

Perché fosRestBundle tenta di determinare il tipo di risposta corretto dalle intestazioni nella richiesta.

-1

Per FOSRestBundle versione 2.0 la configurazione dovrebbe essere

fos_rest: 
    format_listener: 
     rules: 
      prefer_extension: false 
      fallback_format: json 
Problemi correlati