2013-04-04 40 views
0

我有一個關於在其他佈局中包含FOSUserBundle登錄表單的問題。 在某種程度上,我想有兩個登錄表單:包含FOSUser登錄表單到主頁

  • 一個登錄形式,沒有擴展,我可以在這裏包括無處不在,例如在我的主頁誰伸出我的基本佈局
  • 一個登錄表單,顯示例如,當你調用/登錄

我嘗試的東西,但我有這樣的錯誤:

一個例外模板(「未找到路線‘的渲染過程中被拋出GET安全: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我延伸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 /控制器/我只有一個文件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? 爲什麼我有這個錯誤:

在rSWelcomeBundle:Homepage:index.html.twig第15行呈現模板(「找不到路由爲」GET Security:LoginBisAction「」)的路由期間拋出異常。

非常感謝!

回答

0

如錯誤信息:"No route found for "GET Security:LoginBisAction""。所以你叫不存在的路線(完全不存在控制器動作)。請注意,沒有LoginBisAction原始Security FOSUser包。試着打電話給你的擴展控制器動作:

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

謝謝您awnser,但它不工作,我嘗試你說什麼,我都始終: 「異常被模板的渲染(期間拋出」無路由找到「GET用戶:LoginBisAction」「)在rsWelcomeBundle:主頁:index.html.twig第15行。「 另外,如果我嘗試{%渲染 'FOSUserBundle:安全:登錄' %} 或者:{%渲染 'FOSUserBundle:安全性:在LoginAction' %} 它不工作要麼... – user2178964 2013-04-05 05:57:38

+0

你導入此以應用程序/配置/ routing.yml中 'fos_user_security: 資源:「@ FOSUserBundle /資源/配置/路由/ security.xml文件」'這似乎是路由問題 – tigris 2013-04-05 14:34:06

+0

是的,我做到了;) 有人對我說:在我的rs/WelcomeBundle中使用我的主頁佈局: '{%render(controller('robStormUserBundle:User:loginBis'))%}' 我真的不明白爲什麼,我想如果我不想寫「渲染(控制器...」我需要在我的routing.yml中定義一些路線... 無論如何,現在我有這個錯誤: 拋出了一個異常在rsWelcomeBundle:主頁:index.html.twig第15行呈現模板(「無法找到模板」FOSUserBundle:Security:login_content.html.twig「。」)。 – user2178964 2013-04-05 15:29:42