Я использую FOS UserBundle с Sonata Admin / UserBundle, и я не хочу отображать информацию о профиле пользователя FOSUserBundle.
Я могу получить доступ к localhost / MyWebSite / web / app_dev.php /Профиль / редактировать, но
Я не могу получить доступ к localhost / MyWebSite / web / app_dev.php /профиль
У меня есть эта ошибка:
Возникла исключительная ситуация во время рендеринга шаблона («Невозможно сгенерировать URL для указанного маршрута»sonata_user_profile_editmsgstr «как таковой маршрут не существует.») в SonataUserBundle: Profile: action.html.twig в строке 27.
Я не понимаю, почему был создан маршрут профиля пользователя Sonata, когда я спрашиваю Профиль FOSUserBundle страница
В файле журнала я вижу хорошее сообщение о рутинге:
ИНФОРМАЦИЯ — Подходящий маршрут «fos_user_profile_show».
Спасибо за вашу помощь.
Мой файл маршрутизации
#FOS USER AND SONATA ADMIN ROUTES
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"prefix: /change-password
admin:
resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
prefix: /admin
_sonata_admin:
resource: .
type: sonata_admin
prefix: /admin
soanata_user:
resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
prefix: /admin
sonata_user_impersonating:
pattern: /
defaults: { _controller: SonataPageBundle:Page:catchAll }
homepage:
pattern: /
Изменить 1:
Я пытаюсь проверить отладку
Когда я вызываю URL: localhost / MyWebSite / web / app_dev.php /профиль хороший маршрут fos_user_profile_show была найдена.
Зайди в контроллер FOS
..\ Поставщика \ friendsofsymfony \ пользовательский пакет \ FOS \ UserBundle\ Controller \ ProfileController.PHP
Но после ProfileController showAction () функция, есть вызов ** Sonata UserBundle action.html.twig **
Дорожка : …\ Поставщика \ соната-проект \ User-расслоением \ Resources \ вид \ профиль \ action.html.twig
Я не понимаю, где моя ошибка и как это возможно 🙁
… \ поставщика \ friendsofsymfony \ пользовательский пакет \ FOS \ UserBundle \ Resources \ Config \ маршрутизации \ profile.xml
<!--\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Resources\config\routing\profile.xml-->
<?xml version="1.0" encoding="UTF-8" ?>
<route id="fos_user_profile_show" path="/" methods="GET">
<default key="_controller">FOSUserBundle:Profile:show</default>
</route>
<route id="fos_user_profile_edit" path="/edit" methods="GET POST">
<default key="_controller">FOSUserBundle:Profile:edit</default>
</route>
…\ Поставщика \ сонаты-проект \ User-расслоение \ Resources \ Config \ маршрутизация \ sonata_profile_1.xml
<routes xmlns="http://symfony.com/schema/routing"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_profile_show" pattern="/">
<default key="_controller">SonataUserBundle:ProfileFOSUser1:show</default>
<requirement key="_method">GET</requirement>
</route>
<route id="fos_user_profile_edit_authentication" pattern="/edit-authentication">
<default key="_controller">SonataUserBundle:ProfileFOSUser1:editAuthentication</default>
</route>
<route id="fos_user_profile_edit" pattern="/edit-profile">
<default key="_controller">SonataUserBundle:ProfileFOSUser1:editProfile</default>
</route>
<route id="sonata_user_profile_show" pattern="/">
<default key="_controller">SonataUserBundle:ProfileFOSUser1:show</default>
<requirement key="_method">GET</requirement>
</route>
<route id="sonata_user_profile_edit_authentication" pattern="/edit-authentication">
<default key="_controller">SonataUserBundle:ProfileFOSUser1:editAuthentication</default>
</route>
<route id="sonata_user_profile_edit" pattern="/edit-profile">
<default key="_controller">SonataUserBundle:ProfileFOSUser1:editProfile</default>
</route>
Я еще не совсем понял всю «науку», стоящую за этим, поскольку FOS User и Sonata User — самые запутанные пакеты, но это решит вашу проблему.
Просто следуйте этой статье:
https://sonata-project.org/bundles/user/2-2/doc/reference/profile_edition.html
А также заменить это:
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"prefix: /profile
С этим:
sonata_user_change_password:
resource: "@SonataUserBundle/Resources/config/routing/sonata_change_password_1.xml"prefix: /profile
Это где я остановился до сих пор. Следующим шагом будет выяснить, какую часть вы хотите обработать, используя FOS против Sonata, и спроектируйте UI / UX профиля. Я вижу, что имя пользователя & пароль может быть изменен в двух разных местах в профиле, что не очень красиво.
Используйте это тоже, это помогает:
http://symfony.com/doc/current/bundles/FOSUserBundle/configuration_reference.html
Других решений пока нет …