2013-04-04 6 views
0

У меня есть вопрос о том, как включить форму входа в систему FOSUserBundle в другой формат. В некотором роде, я хочу иметь форму два входа:Включите форму входа FOSUser на домашнюю страницу

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

я попробовать что-то, но у меня есть эта ошибка:

исключение было брошено во время рендеринга шаблона ("Нет маршрута найдено для„GET Security: LoginBisAction“ ") в rSWelcomeBundle : Домашняя страница: index.html.twig в строке 15.

У меня есть два пакета: один WelcomeBundle и один UserBundle, который расширяет FOSUserBundle.

В RS/WelcomeBundle У меня есть сайт, и я включаю регистрационную форму в правом блоке:

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

{% block title "Page d'accueil" %} 

{% block body %} 
    <div class="span6"> 
     <div class="well"> 
      <h2>Présentation du site</h2> 
      <p>Rejoignez nous, parce que ceci cela...etc ! </p> 
      <p><a href="{{ path('fos_user_registration_register') }}" class="btn ">Je m'inscris !</a></p> 
     </div> 
    </div> 
    <div class="span6"> 
     <div class="well"> 
      {% render 'FOSUserBundle:Security:LoginBisAction' %} 
     </div> 
    </div> 

{% endblock %} 

В RS/UserBundle, в корне, в rsUserBundle.php I расширяет FOSUserBundle:

<?php 

namespace rs\UserBundle; 

use Symfony\Component\HttpKernel\Bundle\Bundle; 

class rsUserBundle extends Bundle 
{ 
    public function getParent() 
    { 
     return 'FOSUserBundle'; 
    } 
} 

В RS/UserBundle/Ressources/просмотров/layout.html.twig:

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

{% block body %} 
    <div class="span4 offset4"> 
    <div class="well"> 
     {% for key, message in app.session.flashbag.all() %} 
      <div class="alert alert-{{ key }}"> 
       {{ message|trans({}, 'FOSUserBundle') }} 
      </div> 
     {% endfor %} 

     {% block fos_user_content %} 
     {% endblock fos_user_content %} 
    </div> 
    </div> 
{% endblock %} 

В RS/UserBun DLE/Ressources/просмотров/Безопасность/login.html.twig:

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

{% block fos_user_content %} 
{% if error %} 
    <div>{{ error|trans({}, 'FOSUserBundle') }}</div> 
{% endif %} 

{% include "UserBundle:Security:login_content.html.twig" %} 

{% endblock fos_user_content %} 

В RS/UserBundle/Ressources/просмотров/Безопасность/login_content.html.twig:

<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({}, 'FOSUserBundle') }}</label> 
    <input type="text" id="username" name="_username" value="{{ last_username }}" /> 

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

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

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

И в RS/UserBundle/Controller/у меня есть только один файл UserController.php:

<?php 

namespace rs\UserBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Response; 
use FOS\UserBundle\Controller\SecurityController as SecurityController; 

use rs\UserBundle\Entity\User; 

/** 
* Description of UserController 
* 
*/ 
class UserController extends SecurityController { 

    public function LoginBisAction() 
    { 
     $csrfToken = $this->container->get('form.csrf_provider')->generateCsrfToken('authenticate'); 

     return $this->container->get('templating')->renderResponse('FOSUserBundle:Security:login_content.html.twig', array(
      'last_username' => null, 
      'error'   => null, 
      'csrf_token' => $csrfToken 
     )); 
    } 
} 

Что не так, я должен создать маршрут где-нибудь? Почему мой loginAction не найден, когда я иду на свою домашнюю страницу? Почему у меня есть эта ошибка:

Исключение было брошено во время рендеринга шаблона («No маршрута найден для„ПОЛУЧИТЬ безопасность: LoginBisAction“») в rSWelcomeBundle: Домашняя страница: index.html.twig в строке 15.

Большое спасибо!

ответ

0

Как в сообщении об ошибке: "No route found for "GET Security:LoginBisAction"". Таким образом, вы вызываете не существующий маршрут (точно не существовало действие контроллера). Обратите внимание, что нет LoginBisAction для необработанного пакета Security FOSUser. Попробуйте обратить ваше расширенное действие контроллера:

{% render 'rsUserBundle:User:LoginBisAction' %} 
+0

Спасибо за ваш awnser, но это не работает, я стараюсь, что вы сказали, и я всегда: «Исключение было брошено во время рендеринга шаблона (» Нет маршрут, найденный для «GET User: LoginBisAction») в rsWelcomeBundle: Домашняя страница: index.html.twig в строке 15." Кроме того, если я пытаюсь {% делают 'FOSUserBundle: Безопасность: Login' %} Или: {% делают 'FOSUserBundle: Безопасность: LoginAction' %} Это не работает, либо ... – user2178964

+0

вы импортировать в приложение/Config/routing.yml 'fos_user_security: ресурс: "@ FOSUserBundle/Ресурсы/конфигурации/маршрутизации/security.xml"' Это, как представляется, проблема маршрутизации – tigris

+0

Да я это делаю;) Кто-то сказал мне: для использования этого в моем rs/WelcomeBundle в макете моей домашней страницы: '{% render (controller ('robStormUserBundle: User: loginBis'))%}' Я действительно не понимаю почему, я думаю, если я не хочу писать «render (controller ...» Мне нужно определить какой-то маршрут в моей routing.yml ... В любом случае, теперь у меня есть эта ошибка: Исключено во время рендеринга шаблона («Не удалось найти шаблон« FOSUserBundle: Security: login_content.html.twig ».») в rsWelcomeBundle: Домашняя страница: index.html.twig в строке 15. – user2178964

Смежные вопросы