/ / FOSUserBundle con Symfony 3.0 - symfony

FOSUserBundle con Symfony 3.0 - Symfony

Estoy intentando que FOSUserBundle esté en funcionamientodespués de actualizar Symfony de la versión 2.6 a 3.0. En la versión 2.6 básicamente tenía un sitio, css y js somos manejados por assetic, FOSUserBundle estaba funcionando y ejecutando un SQLite configurado a través de la doctrina.

Entonces, antes de retomar este proyecto, realicé la actualización porque 2.6 ya no era compatible.

Porque soy nuevo en Symfony, todo lo que hice está más o menos copiado de la documentación. FOSUserBundle se muestra como un paquete habilitado en modo dev. Alle mi código está en / src / AppBundle. Estoy usando la versión 2.0-dev de FOSUserBundle (e770bfa para ser precisos).

Aquí está una parte de mi plantilla:

<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>

En el 2.6 obtuve

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

en mi /src/AppBundle/config/routing.xml. Si lo guardo de esta manera, ni siquiera puedo cargar el sitio debido a una Excepción.

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

Después de ponerlo en /app/config/routing.yml Mi sitio muestra y las otras rutas definidas en /src/AppBundle/config/routing.xml trabajo. Así que no estaba nada mal con este archivo.

Cuando el sitio muestra la traducción de los enlaces se rompe.

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

Aparece como "layout.login" en lugar de aus Iniciar sesión como antes con 2.6. Y si hago clic en el enlace para iniciar sesión (la ruta es la esperada /iniciar sesión). Symfony me dice:

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

No entiendo por qué lo está buscando en la carpeta AppBundle? De acuerdo con lo que leí, debería buscarlo en la carpeta FOSUserBundle o en / app / Ressources / FOSUserBundle / ... que es donde lo puse para anular la plantilla predeterminada. Confirmé que esta sigue siendo la forma de anular las plantillas incluso con la versión 3.0?

También intenté poner la plantilla en el AppBulde / Pages / carpeta. Luego encuentra la plantilla pero sigue sin funcionar.

Limpié el caché varias veces (esto resolvió otro problema con assetic).

Mírame como si me estuviera perdiendo una parte importante para que FOSUserBundle funcione. ¿Alguna sugerencia sobre lo que podría haber pasado por alto?

Respuestas

2 para la respuesta № 1

FOSUserBundle parece estar utilizando archivos "xml" para enrutamiento, y usted ha incluido un archivo "yml" en su archivo routing.xml:

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