2011-12-06 11 views
15

I napotkał problem, mają następujące:Symfony 2: trasa określona w adnotacji nie jest widoczna z path gałązka jest()

defaultController z prostego działania:

/** 
* @Route("/register") 
* @Template 
*/ 
public function indexAction() { 
    $oForm = $this->createForm(new RegisterType()); 
    return array(
     'form' => $oForm->createView() 
    ); 
} 

w swoim szablonie gałązka staram używać:

<form action="{{ path('register') }}" method="post"></form> 

Ale pojawia się następujący błąd:

An exception has been thrown during the rendering of a template ("Route "register" does not exist.") in EBTSCustomerBundle:Default:index.html.twig at line 2. 

Kiedy jawnie zdefiniować "Rejestracja" trasę w app/config/routing.yml:

register: 
    pattern: /register 
    defaults: { _controller: EBTSCustomerBundle:Controller:Default:index } 

Wtedy to działa dobrze. Nie mogę znaleźć żadnych rozsądnych dokumentów na ten temat, myślałem, że trasy zdefiniowane za pomocą adnotacji powinny być widoczne w całej aplikacji.

Jakieś pomysły?

Odpowiedz

33

Trasy według adnotacji nadal muszą być importowane do routing.yml jak tak:

AcmeHelloBundle: 
    resource: "@AcmeHelloBundle/Controller" 
    type: annotation 

to powie routing skanowanie katalogu z Acme\HelloBundleController i zaimportować wszystkie trasy.

Możesz znaleźć więcej informacji o routingu z adnotacjami here. Ten link poinformuje Cię, jak aktywować trasy, tak jak pokazałem powyżej.

Również zauważyłem, że adnotacja trasa wymaga parametru name być dostępne poprzez register użyciu funkcji path inaczej by do nich dotrzeć poprzez acme_bundlename_controllername_actionname:

@Route("/register", name="register") 

nadzieję, że pomoże!

+1

Niestety, przegapiłem ten import w mojej poprzedniej notatce, trasy z mojego pakietu zostały zaimportowane tak jak napisałeś (zasób: @AcmeHelloBundle ...), ale brakująca nazwa = "zarejestruj" część w mojej adnotacji spowodowała problem . Dzięki za twój wkład, to naprawdę pomogło! – mkrowiarz

+0

dziękuję uratowałeś mi kilka lat życia :) – GorillaApe

+0

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html – Mike

Powiązane problemy