1

Я знаю, что эта тема уже открыта, но через несколько месяцев у вас вообще нет ответа, и когда я попытался ответить, чтобы узнать, получили ли этот автор какие-либо решения ... Мой комментарий удален. Так что я хочу снова опубликовать эту проблему.Sonata Admin Bundle + Sonata User Bundle: Override Форма входа

Я использую для своего администрирования SonataAdminBunbdle и SonataUserBundle. Все работает почти нормально, рядом с некоторыми конкретными вещами.

Теперь, моя проблема. Я хочу переопределить регистрационную форму по умолчанию. Но, даже все, что я пробовал, ничего не работает.

1) Я попытался переопределить регистрационную форму FOSUserBundle, как указано в official documentation.

Я вставил правильный путь этот файл

{% extends "FOSUserBundle::layout.html.twig" %} 

{% block fos_user_content %} 
    AZERTY 
{% endblock fos_user_content %} 

Удаляется полностью оригинальная форма Логин, но изменить ничего я до сих пор имеют ту же форму входа по умолчанию.

2), используя тот же метод для SonataAdminBundle, но ничего не имеет для шаблонов форм для входа в систему.

3) Затем снова один раз для SonataUserBundle, но я ничего не нашел, чтобы переопределить шаблон формы входа.

У меня нет решений, поэтому я могу попросить помощи. Я считаю, как изменить форму входа, перейдя непосредственно изменять файлы моего продавца:

// vendor/sonata-project/user-bundle/Resources/views/Admin/Security/login.html.twig  

{% extends base_template %} 

{% block content %} 
    <div class="connection"> 
     <form action="{{ path("sonata_user_admin_security_check") }}" method="post"> 

      {% if error %} 
       <div class="alert alert-error">{{ error|trans({}, 'SonataUserBundle') }}</div> 
      {% endif %} 

      <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" /> 

      <div class="control-group"> 
       <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label> 

       <div class="controls"> 
        <input type="text" id="username" name="_username" value="{{ last_username }}" class="big sonata-medium"/> 
       </div> 
      </div> 

      <div class="control-group"> 
       <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label> 

       <div class="controls"> 
        <input type="password" id="password" name="_password" class="big sonata-medium" /> 
       </div> 
      </div> 

      <div class="control-group"> 
       <label for="remember_me"> 
        <input type="checkbox" id="remember_me" name="_remember_me" value="on" /> 
        {{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }} 
       </label> 
      </div> 

      <div class="form-actions"> 
       <input type="submit" class="btn btn-primary" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" /> 
      </div> 
     </form> 
    </div> 
{% endblock content %} 

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

Кто-то уже переопределил этот шаблон формы входа в систему?

+0

Вы пытались создать соответствующую папку вида в приложении> ресурсы? Как: приложения> Ресурсы> соната-проект> пользовательского пакет> Ресурсы> вид> Администрирование> Безопасность> login.html.twig Не забудьте очистить кэш. не очень нравится, что, конечно, больше похоже SonaUserBundle> и т.д., но мне не нужно, чтобы сделать это в последнее время – Delphine

+0

Thx для ответа @Delphine, я попробовал почти все combinaisons я могу себе представить, - приложение> Ресурсы> AdminUserBundle> Ресурсы> просмотры> Администрирование> Безопасность - приложение> Ресурсы> SonataUserBundle> Ресурсы> вид> Администратор - приложение> Ресурсы> сонаты-проект> пользовательского пучок> Ресурсы> вид> Безопасность - приложение> Ресурсы> вид> AdminUserBundle> Ресурсы> views> Admin> Безопасность - приложение> Ресурсы> представления> SonataUserBundle> Ресурсы> Представления> Администратор> Безопасность Ничего не изменилось, все еще все время в той же форме по умолчанию – Allchimiste

ответ

7

Если вы поместите пользовательские login.html.twig в:

app/Resources/SonataUserBundle/views/Admin/Security

он будет работать.

Вы можете прочитать more об изменении шаблонов в Symfony.

+0

Thx много! Я думал, что я уже пробовал это, но, похоже, я забыл этот случай ... Thx много. – Allchimiste

1

1/Ok! Я знаю, что вы сделали несколько запросов, но вы пробовали это:

Resources/ 
├── ApplicationSonataUserBundle 
│ └── views 
│  | 
│  └── Security 
│   └── login.html.twig 

Согласно вашему мнению, я не вижу этого решения.

UPDATE:

ApplicationSonataUserBundle является расширится. Я использую это с помощью SonataMediaBundle.

Например, в ApplicationSonataMediaBundle.php:

class ApplicationSonataMediaBundle extends Bundle 
{ 
    /** 
    * {@inheritdoc} 
    */ 
    public function getParent() 
    { 
     return 'SonataMediaBundle'; 
    } 
} 
+0

Thx снова за вашей помощью. Для вашего 1-го пункта. Я использую easy-extend-bundle, чтобы сделать расширение, как вы предлагаете. Создание нескольких файлов/папок в приложении/приложении. Класс ApplicationSonataUserBundle с правильным родительским именем «SonataUserBundle», но даже с моим настраиваемым шаблоном я все еще получил форму входа по умолчанию. Для 2-го, он не работает, я получил сообщение об ошибке: «Unrecognized option» templates »под« sonata_user »». Поэтому я даже не могу выбрать, какой тип использования шаблона. То же самое для «sonata_user», если я пытаюсь поместить «login» в конфигурацию пути «шаблоны», «Unrecognized option» login »под« templates »« – Allchimiste

+0

Ok! Это странно. По-видимому, вам нужно переопределить шаблон 'FOSUserBundle', а не' SonataUserBundle', как я предложил. Добавление шаблона 'login.html.twig' здесь' app \ Resources \ views \ FOSUserBundle \ views \ Security \ login.html.twig' тоже не работает? PS: не забудьте очистить кеш – Delphine

+0

Thx для вашей помощи @ Delphine мы были так близко. Похоже, я забыл попробовать случай, предложенный E1dar. – Allchimiste