1

I'm trying to get FOSUserBundle up and running after upgrading Symfony from version 2.6 to 3.0. On 2.6 I basically had a site, css and js we're handles by assetic, FOSUserBundle was up and running an I had configured SQLite via doctrine.

So before picking this project up again I did the upgrade because 2.6 was no longer supported.

Because I'm new to Symfony everything I did is more or less copied from the documentation. FOSUserBundle is showing up as an enabled bundle in dev-mode. Alle my code is in /src/AppBundle. I'm using the 2.0-dev version of FOSUserBundle (e770bfa to be precise).

Here's a part of my template:

<li> {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} <a href="{{ path('fos_user_security_logout') }}"> {{ 'layout.logout'|trans({}, 'FOSUserBundle') }} </a> {% else %} <a href="{{ path('fos_user_security_login') }}"> {{ 'layout.login'|trans({}, 'FOSUserBundle') }} </a> {% endif %} </li> 

At 2.6 I got

fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.yml" 

in my /src/AppBundle/config/routing.xml. If I keep it this way I can't even load the site because of an Exception

"Unable to generate a URL for the named route "fos_user_security_login" as such route does not exist." 

After putting it in /app/config/routing.yml my site shows and the other routes defined in /src/AppBundle/config/routing.xml work. So it was nothing wrong with this file.

When the site shows up the translation of the links is broken.

{{ 'layout.login'|trans({}, 'FOSUserBundle') }} 

Shows up as "layout.login" instead aus Login as before with 2.6. And if I click the link to log in (the path is as expected /login). Symfony tells me:

Unable to find template "AppBundle:Pages:login.html.twig". 

I don't get why it's looking for it in the AppBundle folder? According to what I read it should look for it in the FOSUserBundle folder or in /app/Ressources/FOSUserBundle/... which is where I put it to override the default template. I confirmed that this is still the way to override templates even with version 3.0.

I also tried to put the template in the AppBulde/Pages/ folder. Then it finds the template but it's still not working.

I cleared the cache multiple times (this solved another problem with assetic).

It look for me as if I'm missing a significant part to get FOSUserBundle working. Any suggestions on what I might have overlooked?

1
  • periodically see routes that you have! php bin/console debug:router Commented Dec 16, 2016 at 8:15

1 Answer 1

3

FOSUserBundle seems to be use 'xml' files for routing, and you have include an 'yml' file in your routing.xml:

fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.yml" 
Sign up to request clarification or add additional context in comments.

1 Comment

or try copy that file as AppBundle/Routing/FOSUserBundle/all.xml, and import in your routing.xml "@AppBundle/Routing/FOSUserBundle/all.xml"

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.