Показать профиль FOS UserBundle + Sonata UserBundle

Я использую 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>

2

Решение

Я еще не совсем понял всю «науку», стоящую за этим, поскольку 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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]