Пользовательский шаблон входа FOSUserBundle с использованием Bootstrap

Мы установили Symfony2, FOS User Bundle и Twitter Bootstrap.

Затем я настраиваю /app/Resources/FOSUserBundle/views/layout.html.twig шаблон, чтобы переопределить FOSUserBundle для использования моего шаблона сайта.

Все работает, если у меня есть ссылка на / логин на главной странице.

Теперь я хочу реализовать шаблон какшаблон героя где форма входа является частью основного шаблона.

Ближайший ямы должны использовать это в основном шаблоне:

{% render controller("FOSUserBundle:Security:login") %}

Я могу переопределить макет HTML, чтобы не расширять основной шаблон, но это удаляет все стили из / логин

Любые идеи, как я могу справиться с обоими сценариями?

 dbrumann16 июн. 2013 г., 00:39
FOSUserBundle»Документация s содержит раздел Переопределение шаблонов FOSUserBundle по умолчанию:github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/...

Ответы на вопрос(2)

Решение Вопроса

Ричард МиллерСообщение помогло мне достичь того, что я пытался сделать.

http://richardmiller.co.uk/2013/02/18/symfony2-ajax-and-full-page-templates/

{% extends app.request.attributes.get('partial')
     ? '::ajax-layout.html.twig'
     : '::full-layout.html.twig' %}

Я не могЯ не смог заставить app.request.partial работать и решил сделать выбор на основе xmlRequest.т идеал.

Вы можете включить форму входа в любой другой шаблон, используя функцию рендера.

{% render controller("FOSUserBundle:Security:login") %}

... вам просто нужно создатьПриложение / Ресурсы / FOSUserBundle / просмотров / Безопасность / login.html.twig и опустить упаковку{% block fos_user_content %} найдено в FOSUserBundle'slogin.html.twig чтобы он возвращал форму напрямую:

{% if error %}
    <div>{{ error|trans }}</div>
{% endif %}

<form action="{{ path(" fos_user_security_check")="" }}"="" method="post">
    <input type="hidden" name="_csrf_token" value="{{ csrf_token }}">

    <label for="username">{{ 'security.login.username'|trans }}</label>
    <input type="text" id="username" name="_username" value="{{ last_username }}" required="required">

    <label for="password">{{ 'security.login.password'|trans }}</label>
    <input type="password" id="password" name="_password" required="required">

    <input type="checkbox" id="remember_me" name="_remember_me" value="on">
    <label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>

    <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}">
</form>

Затем настройте его в соответствии с вашим шаблоном.

 mate6422 янв. 2014 г., 22:35
@nifr Извините, но я неМне не нравится этот метод. Это'S решение отSymfony»суть, но в чем причина отдавать предпочтение написанному от рукиtemplate катомное тип формы?class
 Daniel P18 июн. 2013 г., 21:47
это отлично подходит для размещения наверху, но когда пользователь вводит неверный пароль, видит форму входа без стилизации
 chris_so26 апр. 2015 г., 10:36
Только одно / Для переводов не надоне забудьте сказать приложению, чтобы искать их в FOSUserBundle - Например:{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}
 nifr23 янв. 2014 г., 00:45
@ cept0 - честно говоря, я нене знаю, почему FOSUserBundle 's форма регистрации - это тип формы, в то время как форма входа жестко запрограммирована в шаблоне. вы'верно, что это нет обычная Symfony-путь ... я думаю, этоРазработан таким образом, потому что жестко закодированная форма облегчает включение в другие шаблоны ...не нужно передавать переменную, содержащую форму, каждому представлению для ее рендеринга ... но этопросто предложение :)

Ваш ответ на вопрос