2016-02-20 2 views
1

Я пытаюсь запустить FOSUserBundle после обновления Symfony с версии 2.6 до 3.0. В версии 2.6 у меня в основном был сайт, css и js мы ручками от assetic, у FOSUserBundle был запущен и запущен, я настроил SQLite через доктрину.FOSUserBundle с Symfony 3.0

Итак, перед тем, как выбрать этот проект, я сделал обновление, потому что 2.6 больше не поддерживался.

Поскольку я новичок в Symfony, все, что я сделал, более или менее скопировано из documentation. FOSUserBundle отображается в виде включенного пакета в dev-mode. Alle мой код находится в /src/AppBundle. Я использую 2.0-dev версию FOSUserBundle (точнее, e770bfa).

Вот часть моего шаблона:

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

В 2,6 я получил

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

в моем /src/AppBundle/config/routing.xml. Если я держу это так, я даже не могу загрузить сайт из-за исключения

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

После сдачи его в /app/config/routing.yml мой сайт шоу и других маршрутов, определенного с /src/AppBundle/config/routing.xml работа. Так что ничего не случилось с этим файлом.

Когда сайт показывает, что перевод ссылок нарушен.

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

Показывает как «layout.login» вместо aus Вход как и прежде с 2.6. И если я нажму ссылку для входа (путь как ожидалось /login). Symfony говорит мне:

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

Я не понимаю, почему он ищет его в папке AppBundle? В соответствии с тем, что я читал, он должен искать его в папке FOSUserBundle или в /app/Ressources/FOSUserBundle/..., где я помещаю его, чтобы переопределить шаблон по умолчанию. Я подтвердил, что это все еще способ переопределить шаблоны даже с версией 3.0.

Я также попытался поместить шаблон в папку AppBulde/Pages/. Затем он находит шаблон, но он все еще не работает.

Я несколько раз очистил кеш (это решило еще одну проблему с assetic).

Он выглядит так, как будто я пропускаю значительную часть, чтобы заставить FOSUserBundle работать. Какие-нибудь предложения о том, что я мог упустить?

+0

периодически просматривать маршруты, которые у вас есть! php bin/console debug: router –

ответ

2

FOSUserBundle, как представляется, использование файлов «XML» для маршрутизации, и вы должны включить файл «YML» в вашем routing.xml:

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

или попробуйте скопировать этот файл как * AppBundle/Routing/FOSUserBundle/all.xml * и импортировать в свой * routing.xml * "@ AppBundle/Routing/FOSUserBundle/all.xml" –

Смежные вопросы