Estou tentando colocar o FOSUserBundle em funcionamentodepois de atualizar o Symfony da versão 2.6 para a 3.0. No 2.6 eu basicamente tinha um site, css e js que "nós manipulamos pela assetic, o FOSUserBundle estava funcionando e eu tinha configurado o SQLite via doutrina.
Então, antes de pegar este projeto novamente, fiz o upgrade porque o 2.6 não era mais suportado.
Porque eu sou novo no Symfony tudo o que eu fiz é mais ou menos copiado do documentação. O FOSUserBundle está aparecendo como um pacote habilitado no modo dev. Todo meu código está em / src / AppBundle. Eu estou usando a versão 2.0-dev do FOSUserBundle (e770bfa para ser preciso).
Aqui está uma parte do meu modelo:
<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>
No 2.6 eu tenho
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.yml"
no meu /src/AppBundle/config/routing.xml. Se eu continuar assim, não consigo carregar o site por causa de uma exceção
"Unable to generate a URL for the named route "fos_user_security_login" as such route does not exist."
Depois de colocá-lo em /app/config/routing.yml meu site mostra e as outras rotas definidas em /src/AppBundle/config/routing.xml trabalhos. Então não havia nada de errado com esse arquivo.
Quando o site aparece, a tradução dos links está quebrada.
{{ "layout.login"|trans({}, "FOSUserBundle") }}
Aparece como "layout.login" em vez de Login como antes com o 2.6. E se eu clicar no link para fazer o login (o caminho é o esperado /entrar). Symfony me diz:
Unable to find template "AppBundle:Pages:login.html.twig".
Eu não entendo porque ele está procurando na pasta AppBundle? De acordo com o que eu li, deve procurar na pasta FOSUserBundle ou em / app / Ressources / FOSUserBundle / ... que é onde eu colocá-lo para substituir o modelo padrão. Confirmei que esta ainda é a maneira de substituir os modelos, mesmo com a versão 3.0 ?.
Eu também tentei colocar o modelo no AppBulde / Pages / pasta. Em seguida, ele encontra o modelo, mas ainda não está funcionando.
Limpei o cache várias vezes (isso resolveu outro problema com o assetic).
Parece-me como se estivesse faltando uma parte significativa para fazer o FOSUserBundle funcionar. Alguma sugestão sobre o que eu poderia ter esquecido?
Respostas:
2 para resposta № 1O FOSUserBundle parece estar usando arquivos "xml" para roteamento, e você inclui um arquivo "yml" em seu routing.xml:
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.yml"