Я реализовал как FOSUserBundle, так и HWIOauthBundle в своем проекте Symfony 2. В принципе, все работает нормально, но я хотел бы настроить бит litle больше. Обычно я использую функцию connect функции HWIOauthBundle для подключения учетной записи oauth к пользователю, уже подключенному к форме аутентификации (FOSUserBundle).Symfony 2: HWiOauthBundle: переопределение connect_success.html.twig
В случае Succes действие контроллера HWIOAuthBundle: Подключение: connectService отображает шаблон веточка connect_success.html.twig. На данный момент, я хотел бы, чтобы переопределить этот шаблон и выполните следующие действия:
- Создать флэш сообщение
- дисплея вспышки сообщение на моей домашней странице
Вы можете получить такое поведение легко с FOSUserBundle, поскольку этот комплект отправляет множество событий для подключения к контроллерам. Но с HWIOauthBundle это невозможно.
Мое решение заключается в следующем:
1/я переопределить connect_success.html.twig, помещая один и тот же файл с именем в приложение/Ressources/HWIOauthBundle/просмотров/Connect со следующим кодом:
{{ render(controller('MyUserBundle:User:HWIOAuthFlash')) }}
2/в моем контроллере пользователя (MyUserBundle: Пользователь), я создаю действие HWIOAuthFlashAction(), которая определяет мгновенное сообщение и направляет в действие контроллера, который отображает ситемы стартовой (MyMainBundle: Main: Домашняя)
public function HWIOAuthFlashAction()
{
// Here : flash message definition
return $this->forward('MyMainBundle:Main:homepage');
}
На данный момент на главной странице отображается с сообщением вспышки. Но мне пришлось удалить две ссылки на домашнем шаблоне (homepage.twig.html), что позволяет пользователю переключаться между двумя локалями.
Следующий код является тот, который я должен был удалить из моего шаблона:
<ul>
<li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'fr'})) }}">FR</a></li>
<li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">EN</a></li>
</ul>
Я понимаю, что это специальная переменная _route равна нулю. И я получаю следующее сообщение:
Исключение было брошено во время рендеринга шаблона ("Ошибка при визуализации „ххххх/веб/app_dev.php/Связь/сервис/Google ключ = YYYYYYY“ (Статус код 500) ") в HWIOAuthBundle:. Подключение: connect_success.html.twig на линии 3.
у меня есть два вопроса:
- Для достижения своей цели, действительно ли это хорошо w ай?
- Как сказать symfony, что я хочу, чтобы мой маршрут был homepage?
Я думаю, что я могу проверить, если * _route * равен нулю , В этом случае я заставляю маршрут быть * домашним *. Чтобы судить. – Cruz