createForm(new RegisterType()); "> createForm(new RegisterType()); "> createForm(new RegisterType()); " />

Symfony 2: route gedefinieerd in annotatie niet zichtbaar vanaf Twig's pad ()

Ik ben een probleem tegengekomen, heb het volgende:

DefaultController met een eenvoudige actie:

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

In mijn twijgensjabloon probeer ik het volgende te gebruiken:

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

Maar ik krijg de volgende foutmelding:

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.

Wanneer ik expliciet een "register" -route definieer in app/config/routing.yml:

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

Dan werkt het prima. Ik kan er geen redelijke documenten over vinden. Ik dacht dat routes die via annotaties zijn gedefinieerd, zichtbaar moeten zijn in de hele applicatie.

Nog ideeën jongens?

15

1 antwoord

Routes door annotaties moeten nog steeds als volgt in routing.yml worden geïmporteerd:

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

Dit zal de routering vertellen om de Controller map van de Acme \ HelloBundle te scannen en alle routes te importeren.

U kunt hier meer informatie vinden over routering met annotaties hier . Die link zal je ook vertellen hoe routes te activeren zoals ik hierboven heb getoond.

Ook heb ik gemerkt dat voor de annotatie van je route de parameter naam toegankelijk moet zijn via register met de functie pad , anders is deze toegankelijk via < code> acme_bundlename_controllername_actionname :

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

Ik hoop dat het helpt!

33
toegevoegd
dank je, je hebt me enkele jaren van leven gered :)
toegevoegd de auteur GorillaApe, de bron
Had hetzelfde probleem ... bleek dat mijn "naam" in de annotatie verkeerd was ingesteld. Bedankt.
toegevoegd de auteur Cavachon, de bron
Sorry, ik heb die import gemist in mijn vorige notitie, routes uit mijn bundel werden geïmporteerd net zoals je schreef (bron: @AcmeHelloBundle ...), maar het ontbrekende naam = "register" deel in mijn annotatie veroorzaakte het probleem. Bedankt voor je input, het heeft echt geholpen!
toegevoegd de auteur mkrowiarz, de bron