2012-05-09 9 views
5

Non riesco a capire cosa c'è di sbagliato in una linea singa nel file YML di routing Symfony2. Ogni altra strada funziona bene (e ne ho già un paio di dozzine), ma questa rotta si rifiuta di essere riconosciuta.Debugging di una route in Symfony2

Ecco la clip dedicata del mio file YML:

ProjectMainBundle_util_initUpload: 
    pattern: /util/initUpload 
    defaults: { _controller: ProjectMainBundle:Utilities:initUpload } 
    requirements: 
     _method: POST 

ProjectMainBundle_util_init: 
    pattern: /util/init 
    defaults: { _controller: ProjectMainBundle:Utilities:initUtilities } 
    requirements: 
     _method: POST 

ProjectMainBundle_util_download: 
    pattern: /util/download 
    defaults: { _controller: ProjectMainBundle:Utilities:download } 
    requirements: 
     _method: GET 

Il primo percorso, '/ util/initUpload', restituisce un 'Nessun percorso trovato per errore "POST/util/initUpload". Ho provato a posizionare il blocco in diversi punti (anche spostandolo sopra '/ util/init'.) Il percorso dell'indice '/' è alla fine del mio documento routing.yml, quindi non dovrebbe essere questo il problema. Le rotte di cui sopra sono le uniche nel formato/util/*.

Il percorso serve a gestire un caricamento di moduli e file, ma non penso che importi. Ho rimosso il requisito del POST e l'ho testato direttamente nel browser, e questo mi ha comunque dato lo stesso errore. CamelCase non dovrebbe essere un problema. Ho altri percorsi in quel formato che funzionano bene ...

Cos'altro mi manca? Qualche suggerimento su come eseguire il debug di questo? Il mio prossimo passo è quello di scartare il file YML e riscrivere utilizzando il formato php, anche se io davvero non voglio farlo ..

risposta

20

c'è un comando per elencare tutti i tuoi percorsi:

app/console router:debug 

Se non vedi la tua rotta lì, prova prima a svuotare la cache. Se non aiuta, elimina la definizione della rotta e ridigitela di nuovo manualmente - non copiare/incollare.

P.S. Non ha nulla a che fare con YAML/PHP.

+6

L'utilizzo del comando "router: debug" è deprecato dalla versione 2.7 e verrà rimosso in 3.0. Utilizzare invece "debug: router". – dotoree

+2

'debug: router' funziona. Grazie a @dotoree. – mtchuente